【发布时间】:2017-04-19 13:40:48
【问题描述】:
我读过多篇文章说使用 goto 在编程中是一个巨大的禁忌。但有些人明确指出,滥用 goto 是错误的,并且在某些情况下,例如 switch 案例,这是预期用途。
所以我的问题是,供将来参考,这是最佳实践/更有效。
这个:
switch (a)
{
case 1:
//Something specific for case 1
break;
case 2:
//Something specific to default and case 2
break;
default:
//Something specific for default
goto case 2;
}
或者这个:
switch (a)
{
case 1:
//Something specific for case 1
break;
case 2:
//Something specific to default and case 2
thatFunction();
break;
default:
//Something specific for default
thatFunction();
break;
}
void thatFunction() { /*Case 2 stuff*/ }
编辑:这两个 switch 语句是示例,实际代码包含更多案例。
我工作场所的每个人要么从未使用过 goto,要么说他们只听说过从未使用过它。所以我来这里是为了一个明确的答案。我正在寻找一个答案和一个解释或一个链接。 谢谢,
【问题讨论】:
-
我可能会考虑 goto 作为状态机。出于一个简单的原因,我会列出案例中的整个过程:可读性。这样你就不必记住你在 case 2 中的所有内容也会在 default case 中执行。
标签: c# unity3d switch-statement goto