Type.GetMethod Method (String, Type[])
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
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:
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.MethodInfoA MethodInfo object representing the public method whose parameters match the specified argument types, if found; otherwise, null.
| 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 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.
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: |
|---|
To run this example, see Building examples that have static TextBlock controls for Windows Phone 8. |
using System; using System.Reflection; class Example { // Methods to get: public void MethodA(int i, int j) { } public void MethodA(int[] i) { } public void MethodA(ref int r) { } // Method that takes an out parameter: public void MethodA(int i, out int o) { o = 100; } public static void Demo(System.Windows.Controls.TextBlock outputBlock) { MethodInfo mInfo; // Get MethodA(int i, int i) mInfo = typeof(Example).GetMethod("MethodA", new Type[] { typeof(int), typeof(int) }); outputBlock.Text += String.Format("Found method: {0}", mInfo) + "\n"; // Get MethodA(int[] i) mInfo = typeof(Example).GetMethod("MethodA", new Type[] { typeof(int[]) }); outputBlock.Text += String.Format("Found method: {0}", mInfo) + "\n"; // Get MethodA(ref int r) mInfo = typeof(Example).GetMethod("MethodA", new Type[] { typeof(int).MakeByRefType() }); outputBlock.Text += String.Format("Found method: {0}", mInfo) + "\n"; // Get MethodA(int i, out int o) mInfo = typeof(Example).GetMethod("MethodA", new Type[] { typeof(int), typeof(int).MakeByRefType() }); outputBlock.Text += String.Format("Found method: {0}", mInfo) + "\n"; } } /* This method produces the following output: Found method: Void MethodA(Int32, Int32) Found method: Void MethodA(Int32[]) Found method: Void MethodA(Int32 ByRef) Found method: Void MethodA(Int32, Int32 ByRef) */
Note: