为什么 List<T> 类的源代码文件名为 List'1.cs?

4
当我在VS2010中按下Ctrl并点击List时,会打开List'1.cs文件,该文件包含方法头和摘要注释。
问题是,为什么他们没有将那个文件命名为List(T).cs或List{T}.cs或List[T].cs?为什么使用List'1.cs这种命名规则,这是标准吗?

3
为什么不呢?这就是IL表示通用类型的方式。 - Oded
3
值得检查 - https://dev59.com/J1LTa4cB1Zd3GeqPff8C - Flowerking
1
中间语言。.NET语言编译成什么。 - Oded
3个回答

3
规范的第10.7.2节“类型名称和元数编码”中发现(引用有点格式错误):
CLS兼容的泛型类型名称使用格式“name[arity]”,其中[…]表示重音符号“`”和元数在一起是可选的。编码的名称应遵循以下规则:
1.名称应为不包含“`”字符的ID(请参见Partition II)。 2.元数指定为无前导零或空格的无符号十进制数。 3.对于普通泛型类型,元数是在类型上声明的类型参数的数量。 4.对于嵌套泛型类型,元数是新引入的类型参数的数量。
如果将此与“<>”字符不能用作Windows文件名的事实相结合,那么将命名约定应用于文件名也就有了一些意义。符号“`”是有效的Windows文件名字符。

@downvoter 飞来的踩票,真是太棒了。 - Adam Houldsworth
@TheOtherDownvoter 两个踩和没有解释? - Adam Houldsworth

3
在CLR中,这是注释泛型类型的默认方式。List`1表示该类有一个泛型类型参数。括号只是C#的一种语法,但不能作为文件名使用。

1

命名对于泛型类型来说是标准的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接