我想知道在这些情况下有什么更好的解决方案,或者编码标准在公司中对此有何评论?哪个是双向if-else语句的最佳/标准做法
if (this.State == NetworkState.Server)
{
//...
}
else if (this.State == NetworkState.Client)
{
//...
}
else
{
//some error throwing or printing
}
或
if (this.State == NetworkState.Server)
{
//...
}
else
{
//sure its client here
}
我觉得第一个是更具可读性,因为你可以清楚地看到,客户是其他国家,但它也使代码较长,有时我能”在第三种情况下,真正做得比打印“绝不应该发生”要多得多。有没有一个更好的解决方案?
如果你正在处理一个枚举,你不能确保'Client'处于'else'块的价值,因为你可以收到有问题的枚举值无效。您可以使用'switch'语句而不是使用'if/else',并在'default'子句中引发异常。 – Lee 2013-05-03 20:59:38
@Lee即使枚举只有两个值,如这里? – Innkeeper 2013-05-03 21:00:46
从现在开始,当有人向您的代码中引入新的NetworkState.SomethingElse时会发生什么? – 2013-05-03 21:03:08