2012-08-11 41 views
0

我最近剛學過很多關於IL的新工作。我有一個問題,雖然我不能找到答案。爲什麼.Net 1.1中不支持匿名方法?

我所見過的所有文檔都表明.NET 1.1上不支持匿名方法(用於委託)。但是,在IL中,匿名方法似乎是通過使用「不可能」名稱的常規方法來實現的。

那麼匿名方法怎麼樣使得它們在.NET 1.1上不受支持?有什麼我失蹤?

+0

你能指出你正在談論的文檔嗎? – svick 2012-08-11 00:39:12

+0

我知道不存在一個愚蠢的問題,但這就像問你爲什麼不能在汽油上運行你的馬車,因爲你的現代化交通工具確實如此。 – Evildonald 2012-08-11 01:16:42

+0

@svick http://msdn.microsoft.com/en-us/magazine/cc163682.aspx#S5或只是去谷歌和鍵入'匿名方法.net 2.0' ....和C#編譯器不會讓您在定位.Net 1.1時創建匿名方法。 – Earlz 2012-08-11 01:22:11

回答

4

那麼匿名方法怎麼樣使得它們不支持.NET 1.1?有什麼我失蹤?

針對.Net 1.1的編譯器不支持這一點,因此無法在1.1版本的Framework中創建一個。

自定義語言或編譯器當然可以創建匿名方法的一個版本 - 但當時沒有做任何事情。

+0

嗯......這就是我的想法,但它對我來說沒有任何意義,爲什麼他們不會倒退,並增加對.Net 1.1目標的支持 – Earlz 2012-08-11 00:24:02

+1

@Earlz .NET 2就是這樣一個巨大的變化(與泛型等),我不認爲有太多的願望去做任何事情後,它出來... ... – 2012-08-11 00:25:14

+0

它似乎就像匿名方法並不是什麼新的.NET 2.0,但相當新的C#編譯器(與.Net 2.0相關的任何版本)..他們之前已經倒退了很多。您可以使用C#4.0編譯器編譯東西,它以.Net 2.0爲目標。當然,只支持語言功能,而不支持框架功能......我的問題是爲什麼匿名方法被分類爲框架功能,但真的是語言功能 – Earlz 2012-08-11 01:27:10

2

我認爲這些文檔有誤導性。它應該說明的是,早期版本的託管語言(VB,C#,C++/CLI)不支持匿名方法。

正如你所發現的,在IL中沒有匿名方法的概念;取決於語言使他們匿名(通過將他們隱藏起來)。

相關問題