2012-04-24 72 views
4
列表

當我按下Ctrl鍵並單擊在VS2010名單,List'1.cs打開文件的來源,以及含有方法標頭文件和夏日的意見,爲什麼命名List'1.cs

enter image description here

的問題是,爲什麼你沒有名稱的文件列表(T).cs或列表橫置.cs或列表[T] .CS 爲什麼List'1.cs,是機架或什麼?

+3

爲什麼不呢?這就是IL如何表示泛型。 – Oded 2012-04-24 12:37:56

+2

也值得檢查 - http://stackoverflow.com/questions/4558141/what-does-the-1-mean-when-i-gettype-name-on-a-generic-type – Flowerking 2012-04-24 12:38:24

+0

@Oded什麼是IL – 2012-04-24 12:56:34

回答

3

在CLR中,這是註釋泛型類型的默認方法。 List`1意味着這個類有一個泛型類型參數。括號只是一個C#的東西,它們也不是有效的文件名。

1

命名是通用類型的標準。

3

specification10.7.2節類型名稱和元數編碼實測值(報價是一個小畸形):

符合CLS通用類型名稱所使用的格式 -name [arity]‖ , where […] indicates that the grave accent character ―編碼「和arity在一起是可選的。編碼名稱應遵循 下列規則:

  1. 名稱必須是一個ID(請參閱分區II)不包含-`‖字符。
  2. arity被指定爲無前導零或空格的無符號十進制數。
  3. 對於正常的泛型類型,arity是在類型上聲明的類型參數的數量。
  4. 對於嵌套泛型類型,arity是新引入的類型參數的數量。

如果你還有一點,不是有效的Windows文件名字符<>,這有一定道理,爲什麼他們應用的命名約定的文件名也。 `符號是一個有效的Windows文件名字符。

+0

@downvoter通過降低投票,得到了它的愛。 – 2012-04-24 12:50:35

+0

@TheOtherDownvoter 2 downvotes並沒有解釋? – 2012-04-24 13:17:31