Maison >développement back-end >C++ >Comment puis-je appeler une fonction C# en utilisant son nom stocké sous forme de chaîne ?
Fonction d'appel
par nom stocké dans une chaîneDe 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!