2009-08-24 35 views
3

是泛型參數化IL還是CLS的一部分?C# - 泛型 - CLS還是IL?

+0

我注意到你問一個「或」的問題,而不是選擇之間的選擇。 IL是指定虛擬機的標準化代碼格式。 CLS是什麼規範兼容的編程語言需要生產和消費的規範。我不確定你相信他們彼此之間有什麼關係。你能更好地解釋你的問題嗎? – 2009-08-24 19:53:11

回答

5

它們是CLI的一部分,在標準(ECMA 335)中有詳細說明。 IL使用直接編碼各種通用操作的特殊指令和格式。所以,泛型代碼直接編譯爲CIL,它本身使用類型變量。

+0

並且1.1中泛型不變這一事實意味着1.1應該被稱爲0.1。 – quillbreaker 2009-08-24 18:28:14

+0

好多微軟的產品都是這樣的,ASP.NET MVC就是另外一個例子。 – 2009-08-24 18:31:22

1

要擴展Barry的答案,你可以看到int? x = 5;在IL:

IL_0001: ldloca.s 00 
IL_0003: ldc.i4.5  
IL_0004: call  System.Nullable<System.Int32>..ctor