Heim >Backend-Entwicklung >C++ >Wie kann ich Reflexion verwenden, um generische Methoden mit dynamischen Typparametern aufzurufen?
Verwenden von Reflex -Dynamik, das die generische Methode
aufruft Da die Typparameter beim Kompilieren nicht bekannt sind, muss die dynamische Aufrufmethode reflektiert werden. Um dieses Ziel zu erreichen, führen Sie die folgenden Schritte aus:
rufen Sie die Instanz -Generikum -Methode auf
Holen Sie sich die Art der Scrang -Methode -Deklarationsklasse.
<code class="language-csharp">Type myType = FindType(typeName); MethodInfo method = typeof(Sample).GetMethod(nameof(Sample.GenericMethod)); MethodInfo generic = method.MakeGenericMethod(myType); generic.Invoke(this, null);</code>
methodInfo unter Verwendung der statischen Reflexionsmethode.
Verwenden Sie die vom MakeGegnericMethod angegebenen Typparameter, um die generische Methode zu konstruieren.<code class="language-csharp">MethodInfo method = typeof(Sample).GetMethod(nameof(Sample.StaticMethod)); MethodInfo generic = method.MakeGenericMethod(myType); generic.Invoke(null, null);</code>
Für C# 4 und höhere Versionen kann die Verwendung dynamischer Typen diesen Prozess vereinfachen, insbesondere wenn Typs schließt. In einigen Arten von Schlussfolgerungen (wie den vorgesehenen Beispielen) können jedoch noch Reflexe erforderlich sein.
Das obige ist der detaillierte Inhalt vonWie kann ich Reflexion verwenden, um generische Methoden mit dynamischen Typparametern aufzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!