Type::GetMethod Method (String^, array<Type^>^)
Searches for the specified public method whose parameters match the specified argument types.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- name
-
Type:
System::String^
The string containing the name of the public method to get.
- types
-
Type:
array<System::Type^>^
An array of Type objects representing the number, order, and type of the parameters for the method to get.
-or-
An empty array of Type objects (as provided by the EmptyTypes field) to get a method that takes no parameters.
Return Value
Type: System.Reflection::MethodInfo^An object representing the public method whose parameters match the specified argument types, if found; otherwise, null.
Implements
_Type::GetMethod(String^, array<Type^>^)| Exception | Condition |
|---|---|
| AmbiguousMatchException | More than one method is found with the specified name and specified parameters. |
| ArgumentNullException | name is null. -or- types is null. -or- One of the elements in types is null. |
| ArgumentException | types is multidimensional. |
The search for name is case-sensitive. The search includes public static and public instance methods.
Note |
|---|
You cannot omit parameters when looking up constructors and methods. You can only omit parameters when invoking. |
If the current Type represents a constructed generic type, this method returns the MethodInfo with the type parameters replaced by the appropriate type arguments.
If the current Type represents a type parameter in the definition of a generic type or generic method, this method searches the methods of the class constraint, or the methods of Object if there is no class constraint.
Note |
|---|
The name parameter cannot include type arguments. For example, the C# code GetMethod("MyGenericMethod<int>") searches for a method with the text name "MyGenericMethod<int>", rather than for a method named MyGenericMethod that has one generic argument of type int. Instead, use GetMethod("MyGenericMethod") with the appropriate parameter in the types array. |
The following example finds specific overloads of MethodA, specifying a variety of argument types.
Note |
|---|
The Visual C# 2005 example requires the /unsafe compiler option. |
using namespace System; using namespace System::Reflection; public ref class Program { public: // Methods to get: void MethodA(int i, int j) { } void MethodA(array<int>^ iarry) { } void MethodA(double *ip) { } // Method that takes a managed reference parameter. void MethodA(int% r) {} }; int main() { MethodInfo^ mInfo; // Get MethodA(int i, int j) mInfo = Program::typeid->GetMethod("MethodA", gcnew array<Type^> {int::typeid,int::typeid}); Console::WriteLine("Found method: {0}", mInfo ); // Get MethodA(array<int>^ iarry) mInfo = Program::typeid->GetMethod("MethodA", gcnew array<Type^> {int::typeid->MakeArrayType()}); Console::WriteLine("Found method: {0}", mInfo ); // Get MethodA(double *ip) mInfo = Program::typeid->GetMethod("MethodA", gcnew array<Type^> {double::typeid->MakePointerType()}); Console::WriteLine("Found method: {0}", mInfo ); // Get MethodA(int% r) mInfo = Program::typeid->GetMethod("MethodA", gcnew array<Type^> {int::typeid->MakeByRefType()}); // Display the method information. Console::WriteLine("Found method: {0}", mInfo ); }
The following example retrieves MethodInfo objects that represent the Add methods of a non-generic type (the ArrayList class), an open generic type (the List<T> class), and a closed generic type (the List(Of String) type.
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0

The example defines a GetAddMethod method that retrieves the appropriate MethodInfo object. To provide the types argument for an open generic type, it calls the Type::GetGenericArguments method. To provide the types argument for a closed generic type, it retrieves the value of the Type::GenericTypeArguments property.