簡體   English   中英

處理切換語句

[英]Handling switch statement

處理以下情況的首選方法是:

switch (numberOfActualBytes)
{
    case 1: return something1;
    case 2: return something2;
    case 3: return something3;
    case 4: return something4;
}

我肯定知道由於使用的合同numberOfActualBytes1-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM