The Type.ToString
method uses `1
as a marker for generic types (the 1
refers to "one" generic parameter). This:
System.Collections.Generic.Stack`1[System.String]
is the actual type name for
System.Collections.Generic.Stack<System.String>
in C# syntax. Note that each language can have it's own syntax. For example, this same type, in VB, is:
System.Collections.Generic.Stack(Of System.String)
The key difference is that Type.ToString
is part of the CLR, and not tied to a specific language (like C#), so the syntax used for displaying generic types differs.