Warum ist IsGenericParameter für einen generischen Parameter falsch?

8

Ich habe eine Methode wie folgt definiert:

%Vor%

Wenn ich die MethodInfo für diese Methode ansehe, finde ich

%Vor%

ist false . Ich habe erwartet, dass es true ist, weil der zweite Parameter den Typ T hat. (Auf der anderen Seite ist methodInfo.GetParameters()[1].ParameterType.ContainsGenericParameters true .)

Warum ist% co_de in diesem Fall falsch? Und was ist die korrekte Art zu überprüfen, dass der zweite Parameter den Typ IsGenericParameter hat? Zum Beispiel versuche ich, die richtige Methode zu finden, indem ich die Ergebnisse von T filtere.

    
Tim Goodman 13.09.2013, 13:29
quelle

1 Antwort

12

Der Parametertyp ist nicht T , sondern IL und Reflection rufen T& ( ref T ) auf. Es ist korrekt, dass IsGenericParameter false zurückgibt: Bei by-ref-Typen müssen Sie zuerst den Typ ermitteln, auf den verwiesen wird.

%Vor%

Ausgabe:

%Vor%     
hvd 13.09.2013, 13:55
quelle

Tags und Links