第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在C#5中,foreach對變量的使用是否已更改?

在C#5中,foreach對變量的使用是否已更改?

HUH函數(shù) 2019-11-14 15:21:12
在這個答案中,https: //stackoverflow.com/a/8649429/1497埃里克·利珀特(Eric Lippert)說:“僅供參考,我們很有可能在下一版C#中修復(fù)此問題;這對于開發(fā)人員來說是一個主要的痛點”, foreach循環(huán)使用該變量。在下一個版本中,每次運行“ foreach”循環(huán)時,我們都會生成一個新的循環(huán)變量,而不是每次都關(guān)閉相同的變量。這是一個“突破性的”更改,但是在大多數(shù)情況下,“突破性”將得到解決而不是導(dǎo)致錯誤。我還沒有找到任何表明此更改已完成的信息。是否有任何跡象表明foreach循環(huán)將在C#5中工作?
查看完整描述

2 回答

?
當年話下

TA貢獻1890條經(jīng)驗 獲得超9個贊

這是對C#語言的更改,而不是.NET框架。因此,它只影響在C#5.0下編譯的代碼,而不考慮該代碼將在其上執(zhí)行的.NET Framework版本。


C#5.0

規(guī)范的第8.8.4節(jié)清楚地表明已進行了此更改。具體來說,C#5.0規(guī)范的第249頁指出:


foreach (V v in x) embedded-statement

然后擴展為:


{

    E e = ((C)(x)).GetEnumerator();

    try {

        while (e.MoveNext()) {

            V v = (V)(T)e.Current;

            embedded-statement

        }

    }

    finally {

        … // Dispose e

    }

}

然后:


v在while循環(huán)中的位置對于嵌入式語句中出現(xiàn)的任何匿名函數(shù)如何捕獲它很重要。


C#4.0

與聲明的C#4.0規(guī)范相比,對規(guī)范的這一更改是顯而易見的(同樣在8.8.4節(jié)中,但是這次是第247頁):


foreach (V v in x) embedded-statement

然后擴展為:


{

    E e = ((C)(x)).GetEnumerator();

    try {

        V v;

        while (e.MoveNext()) {

            v = (V)(T)e.Current;

            embedded-statement

        }

    }

    finally {

        … // Dispose e

    }

}

請注意,該變量v是在循環(huán)外部而不是內(nèi)部聲明的,就像在C#5.0中那樣。


注意

您可以在Visual Studio的安裝文件夾下的C#規(guī)范中找到VC#\Specifications\1033。VS2005,VS2008,VS2010和VS2012就是這種情況,使您可以訪問C#1.2、2.0、3.0、4.0和5.0的規(guī)范。您還可以通過搜索在MSDN上找到規(guī)范C# Specification。


查看完整回答
反對 回復(fù) 2019-11-14
?
四季花海

TA貢獻1811條經(jīng)驗 獲得超5個贊

一個很好的例子:List<Action> list = new List<Action>(); foreach (var i in new int[] { 1, 2, 3, 4, 5 }) { list.Add(() => Console.WriteLine(i)); } foreach (var f in list) { f(); }

查看完整回答
反對 回復(fù) 2019-11-14
  • 2 回答
  • 0 關(guān)注
  • 804 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號