Maison >développement back-end >C++ >Comment puis-je appeler des méthodes statiques à l'aide de Reflection dans .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); }
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);
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!