2016-04-07 20 views
0

Ich habe folgenden Code in C#GenericTypeDefinition für Typ mit mehreren Parametern

class c<T> { } 
class d<T,E> { } 
void Main() 
{ 
    Console.WriteLine(typeof(c<>).FullName); // works 
    Console.WriteLine(typeof(d<>).FullName); // CS0305 Using the generic type d<T, E> requires 2 type parameters 
} 

edit:

Console.WriteLine(typeof(d<int, int>).GetGenericTypeDefinition().FullName); 

erwarte ich:

c`1 
d`2 

tut, was ich will, aber ich don‘ t möchten beim Kompilieren beliebige Typen angeben.

Wie bekomme ich GenericTypeDefinition für den Typ d?

Antwort

3
Console.WriteLine(typeof(d<,>).FullName); 
+0

Ich hatte auch anfangs Schwierigkeiten damit, aber der Compiler benötigt diese zusätzlichen Informationen, um zwischen ähnlichen benannten Typdefinitionen mit einer anderen Anzahl generischer Parameter zu unterscheiden - daher das Komma – Dbl