ホームページ >バックエンド開発 >C++ >C# はリフレクションを使用して文字列から関数を動的に呼び出すことができますか?

C# はリフレクションを使用して文字列から関数を動的に呼び出すことができますか?

DDD
DDDオリジナル
2025-01-26 02:21:08979ブラウズ

Can C# Invoke Functions Dynamically from Strings Using Reflection?

C# での文字列を介した関数の呼び出し

PHP は文字列を介して関数を簡単に呼び出すことができます。では、C# でこの関数を実装できるでしょうか?

答え: 反省

はい、リフレクションを使用すると、文字列を介してメソッドを動的に実行できます。その方法は次のとおりです:

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

このコードは、メソッド名の文字列表現を使用してメソッドの MethodInfo を取得するため、機能します。

非パブリックメソッド

非パブリック メソッドを呼び出す必要がある場合は、BindingFlags を使用します。

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

これは、メソッドが非パブリックでインスタンス固有であることを指定します。

以上がC# はリフレクションを使用して文字列から関数を動的に呼び出すことができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。