次の方法で共有


Binder.BindToMethod メソッド

定義

指定された引数に基づいて、指定されている一連のメソッドから呼び出すメソッドを選択します。

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[]

条件に合う候補である一連のメソッド。 たとえば、InvokeMemberBinder オブジェクトが使用される場合、このパラメーターには、メンバー名が正しいために条件に合う可能性ありとリフレクションで判定された一連のメソッドが指定されます。 DefaultBinder に用意されている既定の実装では、この配列の順序が変わります。

args
Object[]

渡される引数。 バインダーでは、この配列内の引数の順序が変わる可能性があります。たとえば、names パラメーターを使用して位置の順序ではない順序を指定した場合は、既定のバインダーによって引数の順序が変更されます。 バインダーの実装により引数の型が強制変換される場合、引数の型と値も同様に変更されることがあります。

modifiers
ParameterModifier[]

バインディングが型の変更されたパラメーター シグネチャと連動できるようにするパラメーター修飾子の配列。 既定のバインダー実装は、このパラメーターを使用しません。

culture
CultureInfo

型を強制変換するバインダー実装で、データ型の強制変換を制御するのに使用される CultureInfo のインスタンス。 culturenull の場合は、現在のスレッドの CultureInfo が使用されます。

names
String[]

照合時にパラメーター名を使用する場合はパラメーター名。引数を単に位置順で扱う場合は null。 たとえば、引数が位置の順序で指定されない場合は、パラメーター名を使用する必要があります。

state
Object

メソッドが返された後、引数の並べ替えを追跡し続けるために state に格納されるバインダーが提供するオブジェクト。 バインダーがこのオブジェクトを作成し、このオブジェクトの唯一のコンシューマーとなります。 null から制御が戻ったときに stateBindToMethod でない場合に、state を元の順序に戻さないためには、argsReorderArgumentArray(Object[], Object) メソッドに渡す必要があります。これはたとえば、ref パラメーター (Visual Basic では ByRef パラメーター) の値を取得できるようにするためです。

戻り値

一致するメソッド。

例外

既定のバインダーでは、match には args とも同等に一致するメソッドが複数含まれます。 たとえば、 args には インターフェイスを MyClass 実装 IMyClass する オブジェクトが含まれており match 、 を受け取るメソッドと を受け取 MyClassIMyClassメソッドが含まれています。

既定のバインダーでは、match には args で指定された引数を受け取ることのできるメソッドは含まれません。

既定のバインダーでは、matchnull または空の配列です。

注釈

既定のバインダーでは、値と params 配列 (ParamArray Visual Basic の配列) を持つパラメーターの両方が考慮されます。 したがって、 と に同じ数の要素がargsmatch含まれていない場合に一致を見つけることができます。

バインダーを使用すると、クライアントは、引数配列が によって BindToMethod操作されている場合に、引数の配列を元の形式にマップし直すことができます。 このような引数が存在する場合に参照渡し引数を取得するには、この再マップ機能を使用します。 引数を名前で渡すと、バインダーは引数配列の順序を変更します。 パラメーターは state 引数の並べ替えを追跡するため、バインダーのメソッドで引数配列を元の ReorderArgumentArray 形式に並べ替えることができます。

メソッドは BindToMethod 、 メソッドによって Type.InvokeMember 使用されます。

バインダーの実装で文字列値を数値型に強制変換できる場合、 culture 1000 を表す文字列を値に Double 変換するには、1000 がカルチャによって異なる方法で表されるため、パラメーターが必要です。 既定のバインダーは、このような文字列の強制変換を行いません。

適用対象

こちらもご覧ください