我们使用 switch 语句根据一系列条件对对象进行一些处理,并使用我们希望针对所有情况调用的默认情况。
我们对解决这个问题的最佳方式存在分歧。
我们中的一些人更喜欢示例 A:
switch (task)
{
case A:
ProcessA();
goto default;
case B:
ProcessB();
goto default;
case C:
ProcessC();
goto default;
default:
Final();
}
而其他人建议最好使用示例 B 之类的东西:
switch (task)
{
case A:
ProcessA();
break;
case B:
ProcessB();
break;
case C:
ProcessC();
break;
}
Final();
因为 Final()
无论如何都会被调用。
这是个人偏好的情况,还是存在客观的性能差异。
是否有任何我们应该注意的准则或问题?
这是用 C# 编写的 API,将被频繁调用。我们渴望把它做好!
干杯!
最佳答案
我会说坚持使用示例 B。
手动插入代码以“跳转”真的没有意义。尤其是当你在所有情况下都跳到同一个地方时。这就是代码块的用途。示例 B 读起来更好,也更容易理解。
至于性能,我不确定哪个会更快(衡量一下?)。但在这一点上,它看起来像是一个你不应该关心的微优化。在这个例子中,我会说可读性和可维护性胜过你可能获得的任何微小的性能提升。
关于c# - Switch 语句性能 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42832547/