Dictionary`2在堆栈跟踪中的含义

时间:2018-01-29 11:55:23

标签: c# stack-trace

有时我会在堆栈跟踪中看到此`2。例如:

  

System.Collections.Generic.KeyNotFoundException:字典中没有给定的键。          在System.Collections.Generic.Dictionary`2.get_Item(TKey key)

词典之后`2的含义是什么?

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>,我们都知道。