當前位置:
首頁 >
一个疑问
發布時間:2025/3/18
37
豆豆
一個疑問
摘自: more effective c#
?
9. 對數組跟集合使用foreach
循環數組或集合有三種方式:
?
int[] foo = new int[100];?
第一種:
?
第二種:
?
?
第三種:
?
?
對于C或C++,第三種循環效率最佳。但是在C#中是最差的,因為在訪問每一個實際的集合時,運行時確保對每個集合的邊界做檢測。而將集合的大小賦值給一個變量,這使得每次進行for循環第二個條件參數總需要對邊界進行兩次檢測。并使得JIT編譯器在生成代碼的時候做了更多的事情。??????????????????
?
原始的C#編譯器對第二種循環效率是最佳的,反而foreach循環效率差,主要是因為涉及到裝箱操作。而數組類型是安全的情況下,foreach可以為數組生成不一樣的IL代碼,使得效率跟第二種循環一樣。并且使用foreach可以寫更少的代碼。
?
posted on 2018-09-17 11:07 時空觀察者9號 閱讀(...) 評論(...) 編輯 收藏
總結
- 上一篇: 1970.1.1这个特殊时间
- 下一篇: 热更资料收集