Why does ToString() on generic types have square brackets? : <p>Why does <code>new List&lt;string&gt;().ToString();</code> return the following:?</p>

<pre><code>System.Collections.Generic.List`1[System.String]
</code></pre>

<p>Why wouldn't it just bring back <code>System.Collections.Generic.List&lt;System.String&gt;</code>. 
What's with the strange non C# syntax?</p>
