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