我有一个方法需要检索大小类型,因此例如我需要返回一个字符串,表示“小”、“中”或“大”。
所以我调用了 GetSize(int size)
。但我还需要知道我要如何返回大小,我是要返回“小”还是要返回“s”。因此该方法变成了 GetSize(int size, enum format)
。
现在我可以做一个 switch case 但它会是
switch (size)
{
case SMALL_SIZE:
switch(format)
case format::short
case format::long
}
所以我必须在每个案例中为“大小”做一个切换案例。我还可以将其分解并调用一个方法来获取每个尺寸案例的格式。
这看起来工作量很大,我这里只有 3 箱尺寸,但想象一下其他东西有 10 箱。我的解决方案是最好的还是有更好的方法?
最佳答案
看来你的方法可以用一个简单的二维数组代替。
// Use actual sizes in the declaration below
static string FormattedSize[2][2] = {
{"small", "s"}
, {"medium", "m" }
// and so on...
};
string GetSize(int size, enum format) {
return FormattedSize[size][format];
}
关于c++ - 如何有效地设计一种方法,其中每个条件都依赖于另一个条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9619169/