我有一个例外,从C#方法,采用一个通用的清单作为paremeter被抛出。
private static void DoWork(List<ClassName> a)
{
}
当它抛出一个异常,堆栈跟踪显示的`1,而不是对列表中的类名。 为什么是这样? 这是堆栈跟踪了。
...
at DoWork(List`1 a).
...
我有一个例外,从C#方法,采用一个通用的清单作为paremeter被抛出。
private static void DoWork(List<ClassName> a)
{
}
当它抛出一个异常,堆栈跟踪显示的`1,而不是对列表中的类名。 为什么是这样? 这是堆栈跟踪了。
...
at DoWork(List`1 a).
...
之所以是堆栈跟踪由CLR,而不是C#生成。 因此,它使用CLR类型名称与C#类型名称。
在元数据提供给通用类型(在C#和VB.Net)的类型名称的格式TypeName`Number其中
这也是为什么它是合法的,有几个泛型类,其名称相同,但通用参数的数量不同。 在CLR水平,他们有不同的类型名称。