我們使用switch語句根據一系列條件對一個對象執行一些處理,並且默認情況下我們期望針對所有情況進行調用。開關語句性能C#
我們對解決此問題的最佳方式存在分歧。
我們中有些人喜歡例子答:
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,並且會被頻繁調用。我們熱衷於做對!
乾杯!
我還沒有見過使用C#switch中的'goto'。 – xanatos
我認爲第一個代碼甚至不應該被考慮在內。這不是交換機的默認設置。 –
是的,這很古怪..我更喜歡第二種方式,當然。儘管'goto'關鍵字存在於C#中,我會遠離它,因爲它違背了像c#這樣的程序語言。另外,關於性能與風格的選擇:只有在性能問題成爲問題時才能解決性能問題。 –