[英]Handling switch statement
處理以下情況的首選方法是:
switch (numberOfActualBytes)
{
case 1: return something1;
case 2: return something2;
case 3: return something3;
case 4: return something4;
}
我肯定知道由於使用的合同 , numberOfActualBytes
在1-4
范圍內。
如何編寫不會導致not all code paths return a value
錯誤的not all code paths return a value
?
我懷疑我應該在此函數的末尾或default switch case
拋出一些異常,但是可能有更好的解決方案。
如果希望應用程序遵守1..4合同,我更喜歡在default
情況下拋出超出范圍的異常。 例外反映了呼叫者對他們會給我很好數據的期望。
如果您的編譯器無法確定default
情況下不是所有代碼路徑都可以解決,則將return
放在switch
。 但是C#編譯器會正確處理。
default: return error_code
將是我的解決方案。
我可能會做這樣的事情。
declare temp_something = a default value; //Used to check for error.
switch (numberOfActualBytes)
{
case 1: temp_something = something1; break;
case 2: temp_something = something2; break;
case 3: temp_something = something3; break;
case 4: temp_something = something4; break;
}
return temp_something;
這樣不一樣嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.