The meaning of Dictionary`2 in a stack trace

The System.Collections.Generic.Dictionary`2 means that the type is System.Collections.Generic.Dictionary, with two type arguments. So in this case it means that the type is System.Collections.Generic.Dictionary<TKey, TValue>, as we all know it.

This's the way .Net makes classes' names. The initial declaration

 Dictionary<K, V>

will be turned into Dictionary'2 type name where '2 means two generic parameters:

 // Dictionary`2 - two generic parameters
 Console.WriteLine(typeof(Dictionary<int, string>).Name);

 // List`1 - one generic parameter

Please compare:

 // IDictionary`2 - two generic parameters
 Console.WriteLine(typeof(IDictionary<int, string>).Name);

 // IDictionary - no generic parameters



Stack Trace