我必须评估许多条件。在我的例子中,我必须这样做:
switch(id)
{
case 5:
// switch some other cases here
case 6:
// set some value
...
}在case 5中使用另一个交换机是一种好的做法吗?如果不是,哪一个更好?那里有if语句吗?
发布于 2011-05-23 21:02:35
我会调用一个特定于case 5的函数,然后在该函数中切换case。例如:
switch(id)
{
case 5:
FunctionFiveSpecific(id);
case 6:
// set some value
...
}特定于情况5的函数:
private void FunctionFiveSpecific(id)
{
// other switch in here
}发布于 2011-05-23 21:03:17
唯一可能出错的是,它可能会损害可读性:
switch(id)
{
case 5:
{
switch (somethingElse)
{
case 1:
// blah...
}
}
case 6:
// set some value
...
}您可以通过将嵌套部分移动到一个方法中来改进这一点:
switch(id)
{
case 5:
Foo();
break;
case 6:
// set some value
...
}发布于 2011-05-23 21:08:43
避免!
尝试重构您的代码以消除切换情况。行为的Switch语句可以重构为策略模式。

https://stackoverflow.com/questions/6097513
复制相似问题