You should avoid conflict just like C # and VB.Net do. When generating a generic type name, add a character and the number of common parameters. For example, for the above
the following type names are actually generated:class Test`1 // Test<T>
class Test`2 // Test<T1,T2>
BCL . IL #, , , .