Binder.BindToMethod メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定された引数に基づいて、指定されている一連のメソッドから呼び出すメソッドを選択します。
public:
abstract System::Reflection::MethodBase ^ BindToMethod(System::Reflection::BindingFlags bindingAttr, cli::array <System::Reflection::MethodBase ^> ^ match, cli::array <System::Object ^> ^ % args, cli::array <System::Reflection::ParameterModifier> ^ modifiers, System::Globalization::CultureInfo ^ culture, cli::array <System::String ^> ^ names, [Runtime::InteropServices::Out] System::Object ^ % state);
public abstract System.Reflection.MethodBase BindToMethod (System.Reflection.BindingFlags bindingAttr, System.Reflection.MethodBase[] match, ref object?[] args, System.Reflection.ParameterModifier[]? modifiers, System.Globalization.CultureInfo? culture, string[]? names, out object? state);
public abstract System.Reflection.MethodBase BindToMethod (System.Reflection.BindingFlags bindingAttr, System.Reflection.MethodBase[] match, ref object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] names, out object state);
abstract member BindToMethod : System.Reflection.BindingFlags * System.Reflection.MethodBase[] * Object[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] * obj -> System.Reflection.MethodBase
Public MustOverride Function BindToMethod (bindingAttr As BindingFlags, match As MethodBase(), ByRef args As Object(), modifiers As ParameterModifier(), culture As CultureInfo, names As String(), ByRef state As Object) As MethodBase
パラメーター
- bindingAttr
- BindingFlags
BindingFlags 値のビットごとの組み合わせ。
- match
- MethodBase[]
条件に合う候補である一連のメソッド。 たとえば、InvokeMember で Binder オブジェクトが使用される場合、このパラメーターには、メンバー名が正しいために条件に合う可能性ありとリフレクションで判定された一連のメソッドが指定されます。 DefaultBinder に用意されている既定の実装では、この配列の順序が変わります。
- args
- Object[]
渡される引数。 バインダーでは、この配列内の引数の順序が変わる可能性があります。たとえば、names
パラメーターを使用して位置の順序ではない順序を指定した場合は、既定のバインダーによって引数の順序が変更されます。 バインダーの実装により引数の型が強制変換される場合、引数の型と値も同様に変更されることがあります。
- modifiers
- ParameterModifier[]
バインディングが型の変更されたパラメーター シグネチャと連動できるようにするパラメーター修飾子の配列。 既定のバインダー実装は、このパラメーターを使用しません。
- culture
- CultureInfo
型を強制変換するバインダー実装で、データ型の強制変換を制御するのに使用される CultureInfo のインスタンス。 culture
が null
の場合は、現在のスレッドの CultureInfo が使用されます。
- names
- String[]
照合時にパラメーター名を使用する場合はパラメーター名。引数を単に位置順で扱う場合は null
。 たとえば、引数が位置の順序で指定されない場合は、パラメーター名を使用する必要があります。
- state
- Object
メソッドが返された後、引数の並べ替えを追跡し続けるために state
に格納されるバインダーが提供するオブジェクト。 バインダーがこのオブジェクトを作成し、このオブジェクトの唯一のコンシューマーとなります。 null
から制御が戻ったときに state
が BindToMethod
でない場合に、state
を元の順序に戻さないためには、args
を ReorderArgumentArray(Object[], Object) メソッドに渡す必要があります。これはたとえば、ref
パラメーター (Visual Basic では ByRef
パラメーター) の値を取得できるようにするためです。
戻り値
一致するメソッド。
例外
既定のバインダーでは、match
には args
とも同等に一致するメソッドが複数含まれます。 たとえば、 args
には インターフェイスを MyClass
実装 IMyClass
する オブジェクトが含まれており match
、 を受け取るメソッドと を受け取 MyClass
る IMyClass
メソッドが含まれています。
既定のバインダーでは、match
には args
で指定された引数を受け取ることのできるメソッドは含まれません。
既定のバインダーでは、match
は null
または空の配列です。
注釈
既定のバインダーでは、値と params
配列 (ParamArray
Visual Basic の配列) を持つパラメーターの両方が考慮されます。 したがって、 と に同じ数の要素がargs
match
含まれていない場合に一致を見つけることができます。
バインダーを使用すると、クライアントは、引数配列が によって BindToMethod操作されている場合に、引数の配列を元の形式にマップし直すことができます。 このような引数が存在する場合に参照渡し引数を取得するには、この再マップ機能を使用します。 引数を名前で渡すと、バインダーは引数配列の順序を変更します。 パラメーターは state
引数の並べ替えを追跡するため、バインダーのメソッドで引数配列を元の ReorderArgumentArray 形式に並べ替えることができます。
メソッドは BindToMethod 、 メソッドによって Type.InvokeMember 使用されます。
バインダーの実装で文字列値を数値型に強制変換できる場合、 culture
1000 を表す文字列を値に Double 変換するには、1000 がカルチャによって異なる方法で表されるため、パラメーターが必要です。 既定のバインダーは、このような文字列の強制変換を行いません。
適用対象
こちらもご覧ください
.NET