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

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

Linda Hamilton
リリース: 2025-01-25 05:11:09
オリジナル
829 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート