Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

Type.GetMethod Method (String, Type[])

.NET Framework 1.1

Searches for the specified public method whose parameters match the specified argument types.

[Visual Basic]
Overloads Public Function GetMethod( _
   ByVal name As String, _
   ByVal types() As Type _
) As MethodInfo
[C#]
public MethodInfo GetMethod(
 string name,
 Type[] types
);
[C++]
public: MethodInfo* GetMethod(
 String* name,
 Type* types[]
);
[JScript]
public function GetMethod(
   name : String,
 types : Type[]
) : MethodInfo;

Parameters

name
The String containing the name of the public method to get.
types
An array of Type objects representing the number, order, and type of the parameters for the method to get.

-or-

An empty array of the type Type (that is, Type[] types = new Type[0]) to get a method that takes no parameters.

Return Value

A MethodInfo object representing the public method whose parameters match the specified argument types, if found; otherwise, a null reference (Nothing in Visual Basic).

Exceptions

Exception Type Condition
AmbiguousMatchException More than one method is found with the specified name and specified parameters.
ArgumentNullException name is a null reference (Nothing in Visual Basic).

-or-

types is a null reference (Nothing).

-or-

One of the elements in types is a null reference (Nothing).

ArgumentException types is multidimensional.

Remarks

The search for name is case-sensitive.

If the requested type is non-public and the caller does not have ReflectionPermission to reflect non-public objects outside the current assembly, this method returns a null reference (Nothing in Visual Basic).

Note   You cannot omit parameters when looking up constructors and methods. You can only omit parameters when invoking.

Example

[Visual Basic, C#, C++] The following example contains a class with an overloaded method. It obtains a Type object corresponding to MyClass1 and calls GetMethod. The method whose parameters match the arguments specified in the type array is returned by the method call.

[Visual Basic] 

Imports System
Imports System.Reflection

Public Class MyClass1
    Public Overloads Sub MyMethod(ByVal i As Integer)
    End Sub
    Public Overloads Sub MyMethod(ByVal i As Integer, ByVal j As Integer)
    End Sub
End Class
Public Class TestMyClass
    Public Shared Sub Main()
        Try
            ' Get a Type object corresponding to MyClass1.
            Dim myClassType As Type = GetType(MyClass1)
            ' Create a Type array.
            Dim typeArray(0) As Type
            typeArray.SetValue(GetType(Integer), 0)
            ' Find the method matching the specified argument types.
            Dim myMethodInfo As MethodInfo = myClassType.GetMethod("MyMethod", typeArray)
            Console.WriteLine("The name of the Method :" & myMethodInfo.ToString())
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try
    End Sub
End Class

[C#] 

using System;
using System.Reflection;

public class MyClass1
{
    public void MyMethod(int i)
    {
    }
    public void MyMethod(int i,int j)
    {
    }
}
public class TestMyClass
{
    public static void Main()
    {
        try
        {
            // Get a Type object corresponding to MyClass1.
            Type myClassType = typeof(MyClass1);
            // Create a Type array.
            Type[] typeArray =new Type[1];
            typeArray.SetValue(typeof(int),0);
            // Find the method matching the specified argument types.
            MethodInfo myMethodInfo = 
                myClassType.GetMethod("MyMethod", typeArray);
            Console.WriteLine("The name of the method :" + myMethodInfo);
        }
        catch(Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
}

[C++] 

#using <mscorlib.dll>

using namespace System;
using namespace System::Reflection;

public __gc class MyClass1 {
public:
   void MyMethod(int) {
   }
   void MyMethod(int, int) {
   }
};

int main() {
   try {
      // Get a Type object corresponding to MyClass1.
      Type*  myClassType = __typeof(MyClass1);
      // Create a Type array.
      Type* typeArray[] = new Type*[1];
      typeArray->SetValue(__typeof(int), 0);
      // Find the method matching the specified argument types.
      MethodInfo*  myMethodInfo =
         myClassType->GetMethod(S"MyMethod", typeArray);
      Console::WriteLine(S"The name of the method : {0}", myMethodInfo);
   } catch (Exception* e) {
      Console::WriteLine(e->Message);
   }
}

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework, Common Language Infrastructure (CLI) Standard

.NET Framework Security: 

See Also

Type Class | Type Members | System Namespace | Type.GetMethod Overload List | MethodInfo | String | DefaultBinder | ReflectionPermission | GetMethodImpl | GetMethods

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.