有时我会在堆栈跟踪中看到此`2
。例如:
System.Collections.Generic.KeyNotFoundException:字典中没有给定的键。 在System.Collections.Generic.Dictionary`2.get_Item(TKey key)
词典之后`2
的含义是什么?
答案 0 :(得分:5)
这就是.Net创建类名称的方式。初始声明
Dictionary<K, V>
将变为Dictionary'2
类型名称,其中'2
表示两个泛型参数:
// Dictionary`2 - two generic parameters
Console.WriteLine(typeof(Dictionary<int, string>).Name);
// List`1 - one generic parameter
Console.WriteLine(typeof(List<int>).Name);
请比较:
// IDictionary`2 - two generic parameters
Console.WriteLine(typeof(IDictionary<int, string>).Name);
// IDictionary - no generic parameters
Console.WriteLine(typeof(System.Collections.IDictionary).Name);
答案 1 :(得分:4)
System.Collections.Generic.Dictionary`2
表示类型为System.Collections.Generic.Dictionary
,带有两个类型参数。所以在这种情况下,它意味着类型是System.Collections.Generic.Dictionary<TKey, TValue>
,我们都知道。