Maison > développement back-end > C++ > Comment puis-je spécifier dynamiquement des arguments de type générique dans les méthodes génériques C# ?

Comment puis-je spécifier dynamiquement des arguments de type générique dans les méthodes génériques C# ?

Mary-Kate Olsen
Libérer: 2025-01-17 20:27:10
original
650 Les gens l'ont consulté

How Can I Dynamically Specify Generic Type Arguments in C# Generic Methods?

Méthode générique C# : utilisation flexible des paramètres de type variable

Lorsque vous utilisez des méthodes génériques en C#, telles que DoesEntityExist<T> (où T représente un type conforme à l'interface IGloballyIdentifiable), vous pouvez rencontrer des problèmes de compilation si vous essayez d'utiliser des types de variables pour spécifier dynamiquement des paramètres de type génériques (tels que comme Type t = entity.GetType();) erreur. En effet, les génériques C# nécessitent que les informations de type soient connues au moment de la compilation.

Utiliser le mécanisme de réflexion

Pour surmonter cette limitation, un mécanisme de réflexion peut être utilisé. Cette technique consiste à appeler les méthodes GetMethod et MakeGenericMethod sur l'objet MethodInfo associé à la méthode générique. Cela vous permet de fournir un paramètre de type de manière dynamique, même s'il n'est connu qu'au moment de l'exécution.

<code class="language-csharp">MethodInfo method = GetType().GetMethod("DoesEntityExist")
                             .MakeGenericMethod(new Type[] { t });
method.Invoke(this, new object[] { entityGuid, transaction });</code>
Copier après la connexion

Améliorer la généricité des méthodes

Une autre approche consiste à modifier la méthode appelante elle-même pour en faire une méthode générique, vous permettant de transmettre les paramètres de type requis en tant que paramètres. Cela amène la décision de sélection de type à un niveau supérieur, simplifiant les appels de méthode ultérieurs.

Explication supplémentaire

Afin de fournir des conseils plus spécifiques, il est préférable de fournir des informations plus contextuelles sur le problème. Parfois, recourir à la réflexion peut être nécessaire, mais planifier stratégiquement votre utilisation d'un type générique peut minimiser sa réutilisation. En choisissant soigneusement le moment de la réflexion, vous pouvez garantir que les paramètres de type ne sont spécifiés dynamiquement qu'une seule fois, permettant au code en aval de les utiliser de manière transparente.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal