Aufruf einer generischen Funktion mit einem zur Laufzeit bestimmten Typparameter

8

Ich habe eine Frage über den Aufruf der generischen Methode einer Klasse mit einem Typparameter, der zur Laufzeit bekannt ist.

Im Speziellen sieht der Code so aus:

%Vor%

Die Funktion Read () sieht so aus:

%Vor%

Zweck dieser Funktion ist das Zurückgeben von Daten, die von einem Byte-Array gelesen werden.

Gibt es eine Möglichkeit, eine generische Methode zur Laufzeit so aufzurufen?

    
Ryan Stecker 21.09.2009, 18:14
quelle

3 Antworten

12

Der einfachste Weg, dies zu handhaben, wäre eine generische Überladung der Read-Funktion mit einem einzigen Type-Parameter:

%Vor%

Und dann muss die generische Version die nicht-generische Version aufrufen:

%Vor%     
Lee 21.09.2009, 18:17
quelle
7

Sie müssen eine methodinfo erstellen und die Read-Methode aufrufen:

%Vor%     
Reed Copsey 21.09.2009 18:18
quelle
1

Es wäre wahrscheinlich besser, Lees Route zu gehen. Generische Zeichen sind zur Entwurfszeit abgekürzt, damit Sie keinen gemeinsamen Code für viele verschiedene Arten von Klassen schreiben müssen. Zur Kompilierungszeit wird jeder Aufruf einer generischen Methode oder Klasse grundsätzlich als eine vollständig separate Klasse generiert.

Viel einfacher, nur den Typ zu bassieren und Reflexion zu verwenden, was Sie sowieso tun müssten.

    
Nick 21.09.2009 18:20
quelle