Maison > développement back-end > C++ > Comment puis-je appeler des méthodes statiques à l'aide de Reflection dans .NET ?

Comment puis-je appeler des méthodes statiques à l'aide de Reflection dans .NET ?

DDD
Libérer: 2024-12-26 16:37:17
original
454 Les gens l'ont consulté

How Can I Invoke Static Methods Using Reflection in .NET?

Appel de méthodes statiques avec réflexion

Dans .NET, il est courant d'avoir des classes statiques qui fournissent des méthodes utilitaires ou d'extension. La question se pose : comment pouvons-nous invoquer ces méthodes statiques à l'aide de la réflexion ?

Comme l'illustre l'extrait de code fourni, les méthodes non statiques peuvent être instanciées et invoquées à l'aide de la réflexion. Cependant, lorsqu'il s'agit de méthodes statiques, une approche alternative est requise.

La clé réside dans la compréhension que le premier argument de la méthode MethodInfo.Invoke est ignoré pour les méthodes statiques. Par conséquent, au lieu de créer une instance de la classe, nous pouvons simplement passer null comme premier argument.

Voici un bloc de code mis à jour qui montre comment appeler des méthodes statiques à l'aide de la réflexion :

foreach (var tempClass in macroClasses)
{
    // Call the static "Run" method using reflection
    tempClass.GetMethod("Run").Invoke(null, null);
}
Copier après la connexion

Pour plus de sécurité, vous souhaiterez peut-être vous assurer que la méthode est bien statique lors de l'appel de GetMethod :

tempClass.GetMethod("Run", BindingFlags.Public | BindingFlags.Static).Invoke(null, null);
Copier après la connexion

En utilisant cette approche, vous pouvez invoquer n'importe quelle méthode statique Exécutez la méthode à partir de l'espace de noms spécifié, offrant un moyen flexible d'exécuter des macros ou des fonctions utilitaires sans avoir besoin d'une instanciation directe de classe.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal