我想知道在這些情況下有什麼更好的解決方案,或者編碼標準在公司中對此有何評論?哪個是雙向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