那麼我正在通過'Lambda表達式'主題(第17章;代表,代表C#語法糖)。傑弗裏指出,C#編譯器具有以下後臺創建一個新的非靜態類:Lambda表達式:編譯器行爲
- 字段來存儲所有已在Lambda表達式被訪問的局部變量。
- 一種方法,其主體包含Lambda表達式,其簽名/返回類型與已使用Lambda Expressin的委託相匹配。
我有以下兩個問題:
我做了一些調試自己,看到的是,如果Lambda表達式修改局部變量的值(在方法定義的拉姆達Expresison正在用於),新的值也反映在表達式體外。考慮到表達式實際上是在不同的類中,這怎麼可能?
爲什麼發出的類需要非靜態時,靜態類完全可以做到這一點?
我希望這不是一個非常簡單的概念,我無法理解。
讓我知道是否需要提供更多的細節。
很棒的回答。謝謝。 – astraldust 2013-03-14 10:29:40
不客氣,歡呼聲。 – Freeman 2013-03-14 10:30:11