Maison >développement back-end >C++ >Comment puis-je appeler une fonction C# en utilisant son nom stocké sous forme de chaîne ?

Comment puis-je appeler une fonction C# en utilisant son nom stocké sous forme de chaîne ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-26 02:11:08268parcourir

How Can I Call a C# Function Using Its Name Stored as a String?

Fonction d'appel

par nom stocké dans une chaîne

De nombreux langages de programmation, dont PHP, permettent l'appel dynamique de fonctions via des références de chaîne. C# offre de riches capacités de réflexion, cette fonctionnalité est donc également disponible dans le .NET Framework.

Utiliser la réflexion pour les appels de fonctions dynamiques

Pour appeler une fonction identifiée par une chaîne en C#, vous pouvez utiliser la réflexion. L'extrait de code suivant montre comment :

<code class="language-csharp">Type thisType = this.GetType();
MethodInfo theMethod = thisType.GetMethod(TheCommandString);
theMethod.Invoke(this, userParameters);</code>

Dans ce code, le nom de la méthode à appeler est stocké dans la variable TheCommandString. La méthode Type est utilisée pour obtenir une référence à une méthode par son nom en obtenant l'instance thisType (GetMethod) de l'objet actuel. Enfin, la méthode Invoke est utilisée pour exécuter la méthode, en transmettant l'objet cible (this) et tous les paramètres nécessaires (userParameters).

Accéder aux méthodes privées

Il est important de noter que la méthode à appeler doit être accessible dans le cadre de l'opération de réflexion. Par défaut, les méthodes utilisant le modificateur d'accès privé ne sont pas accessibles à l'aide de cette méthode. Pour résoudre ce problème, vous pouvez inclure le paramètre GetMethod dans l'appel BindingFlags comme ceci :

<code class="language-csharp">MethodInfo theMethod = thisType
    .GetMethod(TheCommandString, BindingFlags.NonPublic | BindingFlags.Instance);</code>

Avec cette modification, les indicateurs de liaison NonPublic et Instance sont spécifiés, permettant à la méthode d'être appelée quel que soit son modificateur d'accès.

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!

Déclaration:
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