Type.GetMethodImpl 方法

定义

重载

GetMethodImpl(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

当在派生类中重写时,使用指定的绑定约束和指定的调用约定搜索其参数与指定的自变量类型和修饰符匹配的指定方法。When overridden in a derived class, searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.

GetMethodImpl(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

当在派生类中重写时,使用指定的绑定约束和指定的调用约定搜索其参数与指定泛型参数计数、参数类型和修饰符匹配的指定方法。When overridden in a derived class, searches for the specified method whose parameters match the specified generic parameter count, argument types and modifiers, using the specified binding constraints and the specified calling convention.

GetMethodImpl(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

当在派生类中重写时,使用指定的绑定约束和指定的调用约定搜索其参数与指定的自变量类型和修饰符匹配的指定方法。When overridden in a derived class, searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.

protected:
 abstract System::Reflection::MethodInfo ^ GetMethodImpl(System::String ^ name, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, System::Reflection::CallingConventions callConvention, cli::array <Type ^> ^ types, cli::array <System::Reflection::ParameterModifier> ^ modifiers);
protected abstract System.Reflection.MethodInfo GetMethodImpl (string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, Type[] types, System.Reflection.ParameterModifier[] modifiers);
abstract member GetMethodImpl : string * System.Reflection.BindingFlags * System.Reflection.Binder * System.Reflection.CallingConventions * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.MethodInfo

参数

name
String

包含要获取的方法名称的字符串。The string containing the name of the method to get.

bindingAttr
BindingFlags

枚举值的按位组合,这些值指定如何进行搜索。A bitwise combination of the enumeration values that specify how the search is conducted.

-or- 若为 Default,则返回 nullDefault to return null.

binder
Binder

一个对象,该对象定义一组属性并启用绑定,而绑定可能涉及选择重载方法、强制参数类型和通过反射调用成员。An object that defines a set of properties and enables binding, which can involve selection of an overloaded method, coercion of argument types, and invocation of a member through reflection.

-or- 要使用 Nothing 的空引用(在 Visual Basic 中为 DefaultBinder)。A null reference (Nothing in Visual Basic), to use the DefaultBinder.

callConvention
CallingConventions

该对象,用于指定要使用的一套规则,这些规则涉及自变量的顺序和布局、传递返回值的方式、用于自变量的寄存器以及哪个进程清理堆栈。The object that specifies the set of rules to use regarding the order and layout of arguments, how the return value is passed, what registers are used for arguments, and what process cleans up the stack.

types
Type[]

表示此方法要获取的参数的个数、顺序和类型的 Type 对象数组。An array of Type objects representing the number, order, and type of the parameters for the method to get.

-or- 一个类型为 Type (即 Type[] types = new Type[0])的空数组,用于获取一个不带参数的方法。An empty array of the type Type (that is, Type[] types = new Type[0]) to get a method that takes no parameters.

-or- nullnull. 如果 typesnull,则自变量不匹配。If types is null, arguments are not matched.

modifiers
ParameterModifier[]

ParameterModifier 对象的数组,表示与 types 数组中的相应元素关联的特性。An array of ParameterModifier objects representing the attributes associated with the corresponding element in the types array. 默认的联编程序不处理此参数。The default binder does not process this parameter.

返回

表示符合指定要求的方法的对象(如果找到的话);否则为 nullAn object representing the method that matches the specified requirements, if found; otherwise, null.

异常

找到多个具有指定名称且与指定绑定约束匹配的方法。More than one method is found with the specified name and matching the specified binding constraints.

namenullname is null.

types 是多维的。types is multidimensional.

-or- modifiers 是多维的。modifiers is multidimensional.

-or- typesmodifiers 的长度不相同。types and modifiers do not have the same length.

注解

尽管默认联编程序不处理 ParameterModifiermodifiers 参数),但你可以使用 abstract System.Reflection.Binder 类编写处理 modifiers的自定义联编程序。Although the default binder does not process ParameterModifier (the modifiers parameter), you can use the abstract System.Reflection.Binder class to write a custom binder that does process modifiers. 仅当通过 COM 互操作进行调用时才使用 ParameterModifier,且仅处理通过引用传递的参数。ParameterModifier is only used when calling through COM interop, and only parameters that are passed by reference are handled.

如果 typesnull,则自变量不匹配。If types is null, arguments are not matched.

以下 BindingFlags 筛选器标志可用于定义要包括在搜索中的方法:The following BindingFlags filter flags can be used to define which methods to include in the search:

  • 若要获取返回,必须指定 BindingFlags.InstanceBindingFlags.StaticYou must specify either BindingFlags.Instance or BindingFlags.Static in order to get a return.

  • 指定 BindingFlags.Public 以在搜索中包含公共方法。Specify BindingFlags.Public to include public methods in the search.

  • 指定 BindingFlags.NonPublic 以在搜索中包括非公共方法(即私有、内部和受保护的方法)。Specify BindingFlags.NonPublic to include non-public methods (that is, private, internal, and protected methods) in the search.

  • 指定 BindingFlags.FlattenHierarchy 包括层次结构中的 publicprotected 静态成员;不包括继承类中 private 静态成员。Specify BindingFlags.FlattenHierarchy to include public and protected static members up the hierarchy; private static members in inherited classes are not included.

以下 BindingFlags 修饰符标志可用于更改搜索的工作方式:The following BindingFlags modifier flags can be used to change how the search works:

  • BindingFlags.IgnoreCase 忽略 name的大小写。BindingFlags.IgnoreCase to ignore the case of name.

  • BindingFlags.DeclaredOnly 仅搜索 Type上声明的方法,而不搜索简单继承的方法。BindingFlags.DeclaredOnly to search only the methods declared on the Type, not methods that were simply inherited.

有关更多信息,请参见System.Reflection.BindingFlagsSee System.Reflection.BindingFlags for more information.

另请参阅

GetMethodImpl(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

当在派生类中重写时,使用指定的绑定约束和指定的调用约定搜索其参数与指定泛型参数计数、参数类型和修饰符匹配的指定方法。When overridden in a derived class, searches for the specified method whose parameters match the specified generic parameter count, argument types and modifiers, using the specified binding constraints and the specified calling convention.

protected:
 virtual System::Reflection::MethodInfo ^ GetMethodImpl(System::String ^ name, int genericParameterCount, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, System::Reflection::CallingConventions callConvention, cli::array <Type ^> ^ types, cli::array <System::Reflection::ParameterModifier> ^ modifiers);
protected virtual System.Reflection.MethodInfo GetMethodImpl (string name, int genericParameterCount, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, Type[] types, System.Reflection.ParameterModifier[] modifiers);
abstract member GetMethodImpl : string * int * System.Reflection.BindingFlags * System.Reflection.Binder * System.Reflection.CallingConventions * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.MethodInfo
override this.GetMethodImpl : string * int * System.Reflection.BindingFlags * System.Reflection.Binder * System.Reflection.CallingConventions * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.MethodInfo

参数

name
String

包含要获取的方法名称的字符串。The string containing the name of the method to get.

genericParameterCount
Int32

方法的泛型类型参数的数目。The number of generic type parameters of the method.

bindingAttr
BindingFlags

枚举值的按位组合,这些值指定如何进行搜索。A bitwise combination of the enumeration values that specify how the search is conducted.

-or-

若为 Default,则返回 nullDefault to return null.

binder
Binder

一个对象,该对象定义一组属性并启用绑定,而绑定可能涉及选择重载方法、强制参数类型和通过反射调用成员。An object that defines a set of properties and enables binding, which can involve selection of an overloaded method, coercion of argument types, and invocation of a member through reflection.

-or-

要使用 Nothing 的空引用(在 Visual Basic 中为 DefaultBinder)。A null reference (Nothing in Visual Basic), to use the DefaultBinder.

callConvention
CallingConventions

该对象,用于指定要使用的一套规则,这些规则涉及自变量的顺序和布局、传递返回值的方式、用于自变量的寄存器以及哪个进程清理堆栈。The object that specifies the set of rules to use regarding the order and layout of arguments, how the return value is passed, what registers are used for arguments, and what process cleans up the stack.

types
Type[]

表示此方法要获取的参数的个数、顺序和类型的 Type 对象数组。An array of Type objects representing the number, order, and type of the parameters for the method to get.

-or-

一个类型为 Type (即 Type[] types = new Type[0])的空数组,用于获取一个不带参数的方法。An empty array of the type Type (that is, Type[] types = new Type[0]) to get a method that takes no parameters.

-or-

nullnull. 如果 typesnull,则自变量不匹配。If types is null, arguments are not matched.

modifiers
ParameterModifier[]

ParameterModifier 对象的数组,表示与 types 数组中的相应元素关联的特性。An array of ParameterModifier objects representing the attributes associated with the corresponding element in the types array. 默认的联编程序不处理此参数。The default binder does not process this parameter.

返回

表示与指定泛型参数计数、参数类型、修饰符、绑定约束及调用约定匹配的方法的对象(如果找到的话);否则为 nullAn object representing the method that matches the specified generic parameter count, argument types, modifiers, binding constraints and calling convention, if found; otherwise, null.

异常

需要在派生类中重写并调用方法。The method needs to be overriden and called in a derived class.

适用于