Heim > Backend-Entwicklung > C++ > Wie kann ich generische Methoden mit dynamisch aufgelösten Typvariablen in C#aufrufen?

Wie kann ich generische Methoden mit dynamisch aufgelösten Typvariablen in C#aufrufen?

Linda Hamilton
Freigeben: 2025-02-03 08:15:10
Original
856 Leute haben es durchsucht

How Can I Invoke Generic Methods with Dynamically Resolved Type Variables in C#?

Verwenden eines dynamischen Typs der Typvariablen C#Generikationsmethode

Bei Verwendung der generischen Methode begegnen Sie häufig auf den Typ der Parameter beim Kompilieren, bestimmen jedoch den Typ -Parameter während der Laufzeit dynamisch. Reflex bietet eine leistungsstarke Lösung, um diese Herausforderung zu bewältigen.

Die Lösung von genetisch genetisch erzeugten Hodhod

Um den in myType -Variablen gespeicherten Typ zu verwenden, um die generische Methode genericMedHod

aufzurufen, können Sie die folgenden Methoden verwenden:

  1. methodInfo mit Reflexionsmethode:

    <code class="language-csharp">MethodInfo method = typeof(Sample).GetMethod(nameof(Sample.GenericMethod));</code>
    Nach dem Login kopieren
  2. Geben Sie Typparameter an, um generische Methoden zu konstruieren:

    <code class="language-csharp">MethodInfo generic = method.MakeGenericMethod(myType);</code>
    Nach dem Login kopieren
    Nach dem Login kopieren
  3. rufen Sie die generische Methode des Konstruktors auf:

    <code class="language-csharp">generic.Invoke(this, null);</code>
    Nach dem Login kopieren
statische Methode staticMethod -Lösung

Um die statische generische Methode staticMethod

aufzurufen, befolgen Sie bitte ähnliche Schritte:

  1. methodinfo, um statische generische Methoden zu erhalten:

    <code class="language-csharp">MethodInfo method = typeof(Sample).GetMethod(nameof(Sample.StaticMethod));</code>
    Nach dem Login kopieren
  2. Verwenden Sie den Typ Parameter konstruieren generische Methode:

    <code class="language-csharp">MethodInfo generic = method.MakeGenericMethod(myType);</code>
    Nach dem Login kopieren
    Nach dem Login kopieren
  3. Rufen Sie die generische Methode des Konstruktors auf.

    <code class="language-csharp">generic.Invoke(null, null);</code>
    Nach dem Login kopieren
  4. C# 4 und dynamische Schlüsselwörter, die durch vereinfachte
mitgebracht wurden

Obwohl die Reflexion eine leistungsstarke Lösung für das Aufrufen der generischen Methode bietet, kann dies eine Menge Modellcode beinhalten. Ab C# 4 können Sie jedoch dynamische Schlüsselwörter verwenden, um diesen Prozess zu vereinfachen. Wenn die Typinferenz verfügbar ist, kann die Verwendung von Dynamic den erforderlichen Code erheblich reduzieren.

Das obige ist der detaillierte Inhalt vonWie kann ich generische Methoden mit dynamisch aufgelösten Typvariablen in C#aufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage