C#中的for和foreach的探究與學(xué)習(xí)
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
一:語句及表示方法 for語句: for(初始表達(dá)式;條件表達(dá)式;增量表達(dá)式) foreach語句: foreach(數(shù)據(jù)類型 變量 in 數(shù)組或集合) 二.理解 1.從程序邏輯上理解,foreach是通過指針偏移實現(xiàn)的(最初在-1位置,每循環(huán)一次,指針就偏移一個單位),而for循環(huán)是通過當(dāng)前索引相對零索引的偏移量(通過首地址和地址偏移量)計算實際訪問地址實現(xiàn)的; 2.以上我們也可以看出,for更具有判斷邏輯性,foreach只是循環(huán)訪問。當(dāng)然你可以你再循環(huán)體引入業(yè)務(wù)邏輯。 從以上總結(jié)我們看出,兩者各有優(yōu)點,其實我覺得各自的優(yōu)點,要在不同的程序中我們?nèi)タ剂恳恍┮兀瑫r我們具體問題具體分析。那我們具體看下一下代碼:我們以100萬個數(shù)據(jù)相加累和,作進(jìn)一步測試: 代碼如下: 三.結(jié)果: 四.從問題出發(fā),更要從實際出發(fā) 我們對for語句和foreach語句進(jìn)行統(tǒng)計,實際此程序問題很多: 問題0:其中變量的定義對測試影響大不大。 問題1:DateTime.Now時間的精確性影響大不大。 問題2:for語句和foreach語句的位置順序問題會不會影響。 問題3:相加累和方法測試,對for語句和foreach語句測試是否公平。 問題4:for語句和foreach語句,裝載數(shù)據(jù)方式,調(diào)用數(shù)據(jù)順序具有很大的研究價值。 問題5:for語句和foreach語句運行機(jī)制原理,對于兩者的PK是否公平。 以上幾點經(jīng)過長久的測試,影響比較大的。當(dāng)我們試圖去探究一些問題,請大家更注重他們的運行機(jī)制,當(dāng)然也要更注重他們在我們實際程序中,不能一直去研究性能,而忽略他們存在機(jī)制。 該文章在 2023/10/7 10:00:00 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |