Heim >Backend-Entwicklung >C++ >Wie rufe ich generische Methoden mit dynamischen Typparametern in C#auf?
Rufen Sie die generische Methode auf, wenn die Typparameter beim Ausführen ermittelt werden
Viele Anwendungsarten werden vor dem unbekannten Typ vor der Laufzeit verarbeitet. In diesem Fall ist die Verwendung dynamisch erhaltener Typparameter zum Aufrufen der generischen Methode sehr wichtig. In diesem Artikel wird die beste Praxis erörtert, um diese Aufgabe zu erreichen. unter der Annahme der folgenden Szene: In der
-Methode müssen wirdie generische Methode
in der Variablen Example()
verwenden. Die Methode zum direkten Aufrufen von myType
ist nicht machbar. Type
GenericMethod<T>()
Um die generische Methode mit dynamischen Typparametern aufzurufen, verwenden wir Reflexion. Zunächst verwenden wir die Metadaten für die -Anfassungsmethode. Anschließend verwenden wir die generische Methode GenericMethod<myType>()
, indem wir geeignete Typparameter bereitstellen. Schließlich verwenden wir die die generische Methode.
GetMethod()
Wenn die generische Methode statisch ist, übergeben wir MakeGenericMethod()
als erster Parameter an Invoke()
. Dieser Schritt hat nichts mit generischen Methoden zu tun, was eine allgemeine Reflexionspraxis ist.
<code class="language-csharp">MethodInfo method = typeof(Sample).GetMethod(nameof(Sample.GenericMethod)); MethodInfo generic = method.MakeGenericMethod(myType); generic.Invoke(this, null);</code>c# 4 führte die "dynamische" Typinferenz ein, die diesen Prozess in bestimmten Szenen vereinfacht. Wenn jedoch nicht verfügbar ist, ist es immer noch nützlich, die Reflexion zu verstehen.
Das obige ist der detaillierte Inhalt vonWie rufe ich generische Methoden mit dynamischen Typparametern in C#auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!