Maison >développement back-end >C++ >Comment utiliser la réflexion pour invoquer des méthodes génériques avec des paramètres de type dynamique?
Utilisation de réflexe dynamique appelant la méthode générique
Parce que les paramètres de type sont inconnus lors de la compilation, la méthode d'appel dynamique doit être reflétée. Pour atteindre cet objectif, suivez les étapes suivantes:
Appelez la méthode générique d'instance
Obtenez le type de classe de déclaration de méthode Scrang.
<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>
Méthodinfo en utilisant la méthode statique de la construction de réflexion.
Utilisez les paramètres de type spécifiés par le MakeGeRericMethod pour construire la méthode générique.<code class="language-csharp">MethodInfo method = typeof(Sample).GetMethod(nameof(Sample.StaticMethod)); MethodInfo generic = method.MakeGenericMethod(myType); generic.Invoke(null, null);</code>
Pour les versions C # 4 et supérieures, l'utilisation de types dynamiques peut simplifier ce processus, en particulier lorsque le type inférieur possible. Cependant, dans certains types d'inférences (comme les exemples fournis), des réflexes peuvent toujours être nécessaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!