エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Type.GetMethod メソッド (String, BindingFlags)

2013/12/12

指定したバインディング制約を使用して、指定したメソッドを検索します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public MethodInfo GetMethod(
	string name,
	BindingFlags bindingAttr
)

パラメーター

name
型: System.String
取得するメソッドの名前を格納している String
bindingAttr
型: System.Reflection.BindingFlags
検索の実行方法を指定する 1 つ以上の BindingFlags から成るビットマスク。
または
null を返す 0。

戻り値

型: System.Reflection.MethodInfo
指定した要件と一致するメソッドが見つかった場合は、そのメソッドを表す MethodInfo オブジェクト。それ以外の場合は null

実装

IReflect.GetMethod(String, BindingFlags)

例外条件
AmbiguousMatchException

指定した名前を持ち、指定したバインディング制約に一致するメソッドが 2 つ以上存在します。

ArgumentNullException

namenull です。

次の BindingFlags フィルター フラグは、検索対象に含めるメソッドを定義するために使用できます。

  • 戻り値を取得するには、BindingFlags.Instance または BindingFlags.Static のいずれかを指定する必要があります。

  • 検索対象にパブリック メソッドを含めるための BindingFlags.Public を指定します。

  • 検索対象にパブリックではないメソッド (つまり、プライベート メソッドやプロテクト メソッド) を含めるための BindingFlags.NonPublic を指定します。

  • 階層構造の上位にある public 静的メンバーおよび protected 静的メンバーを検索対象に含めるには、BindingFlags.FlattenHierarchy を指定します。継承クラスの private 静的メンバーは含まれません。

次の BindingFlags 修飾フラグは、検索方法を変更するために使用できます。

  • name の大文字と小文字の違いを無視する場合は BindingFlags.IgnoreCase

  • 単に継承されただけのメソッドではなく、Type で宣言されたメソッドだけを検索する場合は BindingFlags.DeclaredOnly

詳細については、「System.Reflection.BindingFlags」を参照してください。

メモメモ:

コンストラクターおよびメソッドを検索する場合、パラメーターは省略できません。パラメーターは呼び出すときだけ省略できます。

現在の T:System.Type が構築ジェネリック型を表している場合、このメソッドは、型パラメーターを適切な型の引数で置き換えて MethodInfo を返します。

現在の Type がジェネリック型またはジェネリック メソッドの定義の型パラメーターを表している場合、このメソッドはクラス制約のメソッドを検索します。クラス制約がない場合は、Object のメソッドを検索します。

メモメモ:

ジェネリック メソッドの場合は、型引数を name に含めないでください。たとえば、C# コード GetMember("MyMethod<int>") は、型 int の汎用引数を 1 つ持っている MyMethod という名前のメソッドではなく、テキスト名 "MyMethod<int>" というメンバーを検索します。

指定したバインディング フラグに一致するメソッドを取得する例を次に示します。

メモメモ:

この例を実行するには、「Windows Phone での静的 TextBlock コントロールのあるコード例のビルド」を参照してください。



using System;
using System.Reflection;

class Example
{

   // Method to get:
   public void MethodA() { }


   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {

      // Get MethodA()
      MethodInfo mInfo = typeof(Example).GetMethod("MethodA",
          BindingFlags.Public | BindingFlags.Instance);
      outputBlock.Text += String.Format("Found method: {0}", mInfo) + "\n";

   }
}


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示:
© 2015 Microsoft