Binder.BindToMethod(BindingFlags, MethodBase[], Object[], ParameterModifier[], CultureInfo, String[], Object) Binder.BindToMethod(BindingFlags, MethodBase[], Object[], ParameterModifier[], CultureInfo, String[], Object) Binder.BindToMethod(BindingFlags, MethodBase[], Object[], ParameterModifier[], CultureInfo, String[], Object) Binder.BindToMethod(BindingFlags, MethodBase[], Object[], ParameterModifier[], CultureInfo, String[], Object) Method

定義

指定された引数に基づいて、指定されている一連のメソッドから呼び出すメソッドを選択します。Selects a method to invoke from the given set of methods, based on the supplied arguments.

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);
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 BindingFlags BindingFlags

BindingFlags 値のビットごとの組み合わせ。A bitwise combination of BindingFlags values.

match
MethodBase[]

条件に合う候補である一連のメソッド。The set of methods that are candidates for matching. たとえば、InvokeMemberBinder オブジェクトが使用される場合、このパラメーターには、メンバー名が正しいために条件に合う可能性ありとリフレクションで判定された一連のメソッドが指定されます。For example, when a Binder object is used by InvokeMember, this parameter specifies the set of methods that reflection has determined to be possible matches, typically because they have the correct member name. DefaultBinder に用意されている既定の実装では、この配列の順序が変わります。The default implementation provided by DefaultBinder changes the order of this array.

args
Object[]

渡される引数。The arguments that are passed in. バインダーでは、この配列内の引数の順序が変わる可能性があります。たとえば、names パラメーターを使用して位置の順序ではない順序を指定した場合は、既定のバインダーによって引数の順序が変更されます。The binder can change the order of the arguments in this array; for example, the default binder changes the order of arguments if the names parameter is used to specify an order other than positional order. バインダーの実装により引数の型が強制変換される場合、引数の型と値も同様に変更されることがあります。If a binder implementation coerces argument types, the types and values of the arguments can be changed as well.

modifiers
ParameterModifier[]

バインディングが型の変更されたパラメーター シグネチャと連動できるようにするパラメーター修飾子の配列。An array of parameter modifiers that enable binding to work with parameter signatures in which the types have been modified. 既定のバインダー実装は、このパラメーターを使用しません。The default binder implementation does not use this parameter.

culture
CultureInfo CultureInfo CultureInfo CultureInfo

型を強制変換するバインダー実装で、データ型の強制変換を制御するのに使用される CultureInfo のインスタンス。An instance of CultureInfo that is used to control the coercion of data types, in binder implementations that coerce types. culturenull の場合は、現在のスレッドの CultureInfo が使用されます。If culture is null, the CultureInfo for the current thread is used.

メモ たとえば、バインダーの実装で文字列の値を数値型に強制変換することを許可している場合、このパラメーターでは、1000 を表す StringDouble の値に変換して指定する必要があります。これは、カルチャによって 1000 の表記が異なるためです。Note For example, if a binder implementation allows coercion of string values to numeric types, this parameter is necessary to convert a String that represents 1000 to a Double value, because 1000 is represented differently by different cultures. 既定のバインダーは、このような文字列の強制変換を行いません。The default binder does not do such string coercions.

names
String[]

照合時にパラメーター名を使用する場合はパラメーター名。引数を単に位置順で扱う場合は nullThe parameter names, if parameter names are to be considered when matching, or null if arguments are to be treated as purely positional. たとえば、引数が位置の順序で指定されない場合は、パラメーター名を使用する必要があります。For example, parameter names must be used if arguments are not supplied in positional order.

state
Object Object Object Object

メソッドが返された後、引数の並べ替えを追跡し続けるために state に格納されるバインダーが提供するオブジェクト。After the method returns, state contains a binder-provided object that keeps track of argument reordering. バインダーがこのオブジェクトを作成し、このオブジェクトの唯一のコンシューマーとなります。The binder creates this object, and the binder is the sole consumer of this object. null から制御が戻ったときに stateBindToMethod でない場合に、state を元の順序に戻さないためには、argsReorderArgumentArray(Object[], Object) メソッドに渡す必要があります。これはたとえば、ref パラメーター (Visual Basic では ByRef パラメーター) の値を取得できるようにするためです。If state is not null when BindToMethod returns, you must pass state to the ReorderArgumentArray(Object[], Object) method if you want to restore args to its original order, for example, so that you can retrieve the values of ref parameters (ByRef parameters in Visual Basic).

戻り値

一致するメソッド。The matching method.

例外

既定のバインダーでは、match には args とも同等に一致するメソッドが複数含まれます。For the default binder, match contains multiple methods that are equally good matches for args. たとえば、args には IMyClass インターフェイスを実装した MyClass オブジェクトが含まれ、match には MyClass を使用するメソッドと IMyClass を使用するメソッドが含まれる場合があります。For example, args contains a MyClass object that implements the IMyClass interface, and match contains a method that takes MyClass and a method that takes IMyClass.

既定のバインダーでは、match には args で指定された引数を受け取ることのできるメソッドは含まれません。For the default binder, match contains no methods that can accept the arguments supplied in args.

既定のバインダーでは、matchnull または空の配列です。For the default binder, match is null or an empty array.

注釈

既定のバインダーでは、値とparams配列 (ParamArray Visual Basic 内の配列) を持つ両方のパラメーターが考慮されます。The default binder takes into account both parameters that have values and params arrays (ParamArray arrays in Visual Basic). したがって、 argsmatchに同じ数の要素が含まれていない場合に一致を見つけることができます。Thus, it is possible to find a match in cases where args and match do not contain the same number of elements.

バインダーを使用すると、引数配列がによってBindToMethod操作されている場合、クライアントは引数の配列を元の形式にマップできます。The binder enables a client to map the array of arguments back to its original form if the argument array has been manipulated by BindToMethod. このリマップ機能を使用して、そのような引数が存在する場合に参照渡しの引数を取得します。Use this remap capability to get back by-reference arguments when such arguments are present. 名前で引数を渡すと、バインダーは引数配列を並べ替えます。When you pass arguments by name, the binder reorders the argument array. パラメーター stateは引数の並べ替えを追跡し、バインダーのReorderArgumentArrayメソッドが引数配列を元の形式に並べ替えることができるようにします。The state parameter keeps track of argument reordering, thus enabling the binder's ReorderArgumentArray method to reorder the argument array to its original form.

メソッドは、メソッドType.InvokeMemberによって使用されます。 BindToMethodThe BindToMethod method is used by the Type.InvokeMember method.

適用対象

こちらもご覧ください