ホームページ >バックエンド開発 >C++ >C# でリフレクションを使用してプライベート インスタンス メソッドを呼び出すにはどうすればよいですか?

C# でリフレクションを使用してプライベート インスタンス メソッドを呼び出すにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-25 05:11:09879ブラウズ

How Can I Use Reflection to Invoke Private Instance Methods in C#?

リフレクションを利用して C# でプライベート インスタンス メソッドを呼び出す

同じオブジェクト内からプライベート メソッドを動的に呼び出すには、GetMethod() を正しい BindingFlags とともに使用する必要があります。 GetMethod() のデフォルトの動作では、パブリック メンバーのみが返されます。

プライベート インスタンス メソッドにアクセスするには、コードを次のように変更します。

<code class="language-csharp">MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType,
    BindingFlags.NonPublic | BindingFlags.Instance);
dynMethod.Invoke(this, new object[] { methodParams });</code>

BindingFlags 列挙型はメソッド検索を制御します。 BindingFlags.NonPublic にはプライベート メソッドが含まれており、BindingFlags.Instance によりインスタンス メソッド (静的メソッドではなく) をターゲットにしていることが保証されます。

以上がC# でリフレクションを使用してプライベート インスタンス メソッドを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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