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

Набор методов, являющихся кандидатами для сопоставления. Например, если объект Binder используется методом InvokeMember, этот параметр указывает набор методов, определенных в отражении как возможные соответствия, как правило в связи с тем, что они имеют правильное имя члена. Реализация по умолчанию, предоставленная свойством DefaultBinder, изменяет порядок этого массива.

args
Object[]

Переданные аргументы. Связыватель может изменить порядок аргументов в этом массиве, например связыватель по умолчанию изменяет порядок аргументов в том случае, если этот порядок отличается от порядка по позиции аргументов и определяется параметром names. Если в реализации связывателя выполняется приведение типов аргументов, могут также изменяться типы и значения аргументов.

modifiers
ParameterModifier[]

Массив модификаторов параметров, позволяющий привязке работать с сигнатурами параметров, в которых были изменены типы. В реализации по умолчанию для связывателя этот параметр не используется.

culture
CultureInfo

Экземпляр класса CultureInfo, который используется для управления приведения типов данных в реализациях связывателя, выполняющих приведение типов. Если параметр culture имеет значение null, для текущего потока используется объект CultureInfo.

names
String[]

Имена параметров, если они должны учитываться при сопоставлении, либо значение null, если аргументы должны считаться чисто позиционными. Например, необходимо использовать имена параметров в том случае, если аргументы не передаются в порядке по их позиции.

state
Object

После возврата из этого метода параметр state содержит предоставленный связывателем объект, который отслеживает изменение порядка аргументов. Связыватель создает этот объект и является его единственным объектом-получателем. Если параметр state не равен null в результате возврата из метода BindToMethod, необходимо передать параметр state в метод ReorderArgumentArray(Object[], Object), чтобы восстановить исходный порядок параметра args, например, с целью получить возможность извлекать значения параметров ref (в Visual Basic — параметров ByRef).

Возвращаемое значение

Соответствующий метод.

Исключения

В связывателе по умолчанию параметр match содержит несколько методов, которые являются соответствующими значениям параметра args с одинаковой степенью соответствия. Например, содержит объект , args реализующий MyClassIMyClass интерфейс , и match метод , который принимает MyClass , и метод , который принимает IMyClass.

В связывателе по умолчанию параметр match не содержит методов, которые могут принимать аргументы, переданные в параметре args.

В связывателе по умолчанию параметр match имеет значение null или является пустым массивом.

Комментарии

Связыватель по умолчанию учитывает как параметры, имеющие значения, так и params массивы (ParamArray массивы в Visual Basic). Таким образом, можно найти совпадение в случаях, когда args и match не содержат одинаковое количество элементов.

Связыватель позволяет клиенту сопоставлять массив аргументов с исходной формой, если массив аргументов был изменен .BindToMethod Используйте эту возможность повторного сопоставления, чтобы вернуть аргументы по ссылке при наличии таких аргументов. При передаче аргументов по имени связыватель переупорядочения массива аргументов. Параметр state отслеживает изменение порядка аргументов, что позволяет методу связывателя ReorderArgumentArray изменить порядок массива аргументов в его исходную форму.

Метод BindToMethod используется методом Type.InvokeMember .

Если реализация связывателя позволяет приведение строковых значений к числовым типам, culture параметр необходим для преобразования строки, представляющей 1000, в Double значение, так как значение 1000 по-разному представлено разными языками и региональными параметрами. Связыватель по умолчанию не выполняет подобного преобразования строковых типов.

Применяется к

См. также раздел