为什么List <t>类的源名为List'1.cs?</t>

时间:2012-04-24 12:34:25

标签: c# .net visual-studio-2010

当我按下Ctrl并单击VS2010中的List时,将打开List'1.cs文件,该文件包含方法标题和摘要注释,

enter image description here

问题是,为什么你没有将该文件命名为List(T).cs或List {T} .cs或List [T] .cs? 为什么命名约定List'1.cs,是那个标准?

3 个答案:

答案 0 :(得分:3)

specification 第10.7.2节中找到类型名称和arity编码(引用有点格式错误):

  

符合CLS的通用类型名称使用该格式进行编码   -name [arity]‖ , where […] indicates that the grave accent character ―‖和arity在一起是可选的。编码名称应如下   这些规则:

     
      
  1. name应为不包含-`‖字符的ID(参见Partition II)。
  2.   
  3. arity指定为无符号十进制数,不带前导零或空格。
  4.   
  5. 对于普通泛型类型,arity是在类型上声明的类型参数的数量。
  6.   
  7. 对于嵌套泛型类型,arity是新引入的类型参数的数量。
  8.   

如果将此与<>个字符对Windows文件名无效,则可以理解为什么他们也将命名约定应用于文件名。 `符号是有效的Windows文件名字符。

答案 1 :(得分:3)

在CLR中,这是注释泛型类型的默认方式。 List`1表示该类具有一个泛型类型参数。括号只是一个C#的东西,它们也没有作为文件名有效。

答案 2 :(得分:1)

命名是泛型类型的标准。