VB.NET 2008編譯器是否有選擇地優化Select Case Statements?VB.NET Select Case編譯器優化?
例如,具有足夠數量的整數個案的Select Case Statement可以組織爲二分搜索。
我問這個,因爲我很好奇我是否應該選擇一個Select Case來代替If語句與多個Else If如果要比較整數或其他基本數據類型。
VB.NET 2008編譯器是否有選擇地優化Select Case Statements?VB.NET Select Case編譯器優化?
例如,具有足夠數量的整數個案的Select Case Statement可以組織爲二分搜索。
我問這個,因爲我很好奇我是否應該選擇一個Select Case來代替If語句與多個Else If如果要比較整數或其他基本數據類型。
Select Case
有40個選項比一串40 ElseIf
語句快10倍以上。這比你用二分查找期望得到的改進更大。我猜想一個簡單的整數Select Case
可以使用計算goto語句的現代機器代碼等價物 - 編譯它以便它根據整數值直接分支到合適的「case」。
我認爲Select Case
是一個去。
一般來說,您應該擔心代碼的可讀性和可維護性,而不僅僅是這種性能微優化。
除非此開關位於正在執行1000次(數百萬次)的循環內,否則這不太可能是您的應用程序的性能瓶頸。
做出決定並堅持一致。一般來說,除非您分析了性能瓶頸,否則不要調優代碼。請參閱this question。