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
Libérer: 2025-01-26 02:11:08
original
340 Les gens l'ont consulté

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 :

Type thisType = this.GetType();
MethodInfo theMethod = thisType.GetMethod(TheCommandString);
theMethod.Invoke(this, userParameters);
Copier après la connexion

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 :

MethodInfo theMethod = thisType
    .GetMethod(TheCommandString, BindingFlags.NonPublic | BindingFlags.Instance);
Copier après la connexion

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 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