Maison > développement back-end > C++ > Comment appeler des méthodes statiques à l'aide de Reflection en C# ?

Comment appeler des méthodes statiques à l'aide de Reflection en C# ?

Mary-Kate Olsen
Libérer: 2024-12-28 18:45:13
original
880 Les gens l'ont consulté

How to Invoke Static Methods Using Reflection in C#?

Invoquer des méthodes statiques avec réflexion

Problème :

Vous possédez plusieurs classes statiques au sein du espace de noms mySolution.Macros, chacune contenant des méthodes statiques telles que :

public static class Indent
{
    public static void Run()
    {
        // implementation
    }
}
Copier après la connexion

Votre L'objectif est d'invoquer ces méthodes en utilisant la réflexion, même si elles sont statiques.

Solution :

Pour invoquer des méthodes statiques avec réflexion tout en préservant leur nature statique, utilisez ce qui suit approche :

foreach (var tempClass in macroClasses)
{
    // Note that the first argument is ignored for static methods
    tempClass.GetMethod("Run").Invoke(null, null);
}
Copier après la connexion

Comme mentionné dans la documentation de MethodInfo.Invoke, le premier argument est redondant pour les méthodes statiques, vous pouvez donc passer en toute sécurité null.

Drapeaux de liaison :

Il est important de noter que vous devrez peut-être spécifier des indicateurs de liaison lors de l'appel de la méthode, comme suggéré dans le commentaire :

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

Cela garantit que la méthode est publique et statique, ce qui est nécessaire pour un appel correct.

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