Type::GetMethod Method (String^)

 

Searches for the public method with the specified name.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public:
virtual MethodInfo^ GetMethod(
	String^ name
) sealed

Parameters

name
Type: System::String^

The string containing the name of the public method to get.

Return Value

Type: System.Reflection::MethodInfo^

An object that represents the public method with the specified name, if found; otherwise, null.

Exception Condition
AmbiguousMatchException

More than one method is found with the specified name.

ArgumentNullException

name is null.

The search for name is case-sensitive. The search includes public static and public instance methods.

If a method is overloaded and has more than one public method, the GetMethod(String^) method throws an AmbiguousMatchException exception. In the following example, an exception is thrown because there is more than one public overload of the Int32::ToString method. On the other hand, because the Person.ToString method overrides Object::ToString and therefore is not overloaded, the GetMethod(String^) method is able to retrieve the MethodInfo object.

No code example is currently available or this language may not be supported.

You can do one of the following to retrieve a specific method:

  • Call the GetMethod(String^, BindingFlags) method and specify a bindingAttr argument that uniquely identifies the method. For example, if the exception is thrown because a type has a static and an instance overload, you can specify a bindingAttr argument of BindingFlags::Instance Or BindingFlags::Instance.

  • Call an overload of the GetMethod method that includes a types parameter which defines the types of the method's parameters.

  • Call the GetMethods() method to retrieve an array containing all of the public methods belonging to a type. You can then iterate it to identify the duplicate methods named name.

If the current T:System.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.

System_CAPS_noteNote

For generic methods, do not include the type arguments in name. For example, the C# code GetMember("MyMethod<int>") searches for a member with the text name "MyMethod<int>", rather than for a method named MyMethod that has one generic argument of type int.

The following example gets a method named MethodA.

using namespace System;
using namespace System::Reflection;
public ref class Program
{

    public:

        // Method to get:
        void MethodA() { }

    };

    int main()
    {

        // Get MethodA()
        MethodInfo^ mInfo = Program::typeid->GetMethod("MethodA");
        Console::WriteLine("Found method: {0}", mInfo );

    }

.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Return to top
Show: