정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Type.GetMethod 메서드 (String, Type[])

2013-12-13

지정된 인수 형식과 일치하는 매개 변수를 가진 지정된 public 메서드를 검색합니다.

Namespace:  System
어셈블리:  mscorlib(mscorlib.dll)

public MethodInfo GetMethod(
	string name,
	Type[] types
)

매개 변수

name
형식: System.String
가져올 public 메서드의 이름이 들어 있는 String입니다.
types
형식: System.Type []
가져올 메서드에 대한 매개 변수의 수, 차수, 형식 등을 나타내는 Type 개체 배열입니다.
-또는-
매개 변수를 사용하지 않는 메서드를 가져올 Type 개체(EmptyTypes 필드에서 제공됨)의 빈 배열입니다.

반환 값

형식: System.Reflection.MethodInfo
MethodInfo 개체는 지정된 인수 형식과 일치하는 매개 변수를 가진 public 메서드가 있으면 이를 나타내고, 없으면 null을 반환합니다.

예외조건
AmbiguousMatchException

지정된 이름 및 지정된 매개 변수를 갖는 메서드가 하나 이상 있는 경우

ArgumentNullException

namenull인 경우

-또는-

typesnull인 경우

-또는-

types의 요소 중 하나가 null인 경우

ArgumentException

types가 다차원 배열인 경우

name 검색은 대/소문자를 구분합니다. 검색에는 public static 및 public 인스턴스 메서드가 포함됩니다.

참고참고:

생성자와 메서드를 찾는 경우 매개 변수를 생략할 수 없습니다. 호출할 경우에만 매개 변수를 생략할 수 있습니다.

현재 T:System.Type이 생성된 제네릭 형식을 나타내는 경우 이 메서드는 MethodInfo를 반환합니다. 여기에는 적절한 형식 인수로 대체된 형식 매개 변수가 포함됩니다.

현재 Type이 제네릭 형식 또는 제네릭 메서드 정의에 있는 형식 매개 변수를 나타내는 경우 이 메서드는 클래스 제약 조건의 메서드를 검색하거나 클래스 제약 조건이 없으면 Object의 메서드를 검색합니다.

참고참고:

name 매개 변수는 형식 인수를 포함할 수 없습니다. 예를 들어, C# 코드 GetMethod("MyGenericMethod<int>")int 형식의 제네릭 인수가 하나 있는 MyGenericMethod라는 메서드가 아니라 텍스트 이름이 "MyGenericMethod<int>인 메서드를 검색합니다. 대신, GetMethod("MyGenericMethod")와 함께 types 배열의 적절한 매개 변수를 사용합니다.

다음 예제에서는 다양한 인수 형식을 지정하여 MethodA의 특정 오버로드를 찾습니다.

참고참고:

이 예제를 실행하려면 Windows Phone용 정적 TextBlock 컨트롤이 있는 예제 빌드를 참조하세요.



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)
  */


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

표시: