リフレクションを使用した静的メソッドの呼び出し
.NET では、ユーティリティ メソッドまたは拡張メソッドを提供する静的クラスがあるのが一般的です。疑問が生じます: リフレクションを使用してこれらの静的メソッドを呼び出すにはどうすればよいでしょうか?
提供されたコード スニペットが示すように、非静的メソッドはリフレクションを使用してインスタンス化して呼び出すことができます。ただし、静的メソッドを扱う場合は、別のアプローチが必要です。
重要なのは、MethodInfo.Invoke メソッドの最初の引数が静的メソッドでは無視されることを理解することです。したがって、クラスのインスタンスを作成する代わりに、単純に最初の引数として null を渡すことができます。
リフレクションを使用して静的メソッドを呼び出す方法を示す更新されたコード ブロックは次のとおりです。
安全性を高めるために、GetMethod を呼び出すときにメソッドが実際に静的であることを確認することもできます。
このアプローチを使用すると、次のことができます。指定された名前空間から任意の静的 Run メソッドを呼び出し、クラスを直接インスタンス化することなくマクロやユーティリティ関数を実行する柔軟な方法を提供します。
以上が.NET でリフレクションを使用して静的メソッドを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。