이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

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

 

지정된 인수 형식 및 한정자와 일치하는 매개 변수를 가진 지정된 메서드를 지정된 바인딩 제약 조건으로 검색합니다.

네임스페이스:   System
어셈블리:  mscorlib.dll의 mscorlib

public MethodInfo GetMethod(
	string name,
	BindingFlags bindingAttr,
	Binder binder,
	Type[] types,
	ParameterModifier[] modifiers
)

매개 변수

name

가져올 메서드의 이름이 포함된 문자열입니다.

bindingAttr

검색 방법을 지정하는 하나 이상의 BindingFlags로 구성된 비트 마스크입니다.

또는

0(null을 반환하는 경우)

binder

속성 집합을 정의하고 바인딩을 활성화하는 개체입니다. 이 개체는 또한 리플렉션을 통해 오버로드된 메서드를 선택할 수 있고 인수 형식을 강제 변환할 수 있으며 멤버를 호출할 수도 있습니다.

또는

Nothing를 사용하려면 null 참조(Visual Basic의 경우 DefaultBinder)입니다.

types

가져올 메서드에 대한 매개 변수의 수, 차수, 형식 등을 나타내는 Type 개체 배열입니다.

또는

매개 변수를 사용하지 않는 메서드를 가져올 Type 개체(EmptyTypes 필드에서 제공됨)의 빈 배열입니다.

modifiers

ParameterModifier 배열에서 해당하는 요소와 연관된 특성을 나타내는 types 개체 배열입니다.COM interop를 통해 호출하는 경우에만 사용되며 참조에 의해 전달된 매개 변수만 처리합니다.기본 바인더에서는 이 매개 변수를 처리하지 않습니다.

반환 값

Type: System.Reflection.MethodInfo

지정된 요구 사항과 일치하는 메서드를 나타내는 개체이며(있는 경우), 이러한 개체가 없으면 null을 반환합니다.

Exception Condition
AmbiguousMatchException

지정한 이름을 가진 메서드가 둘 이상 있으면 및 지정 된 바인딩 제약 조건과 일치 합니다.

ArgumentNullException

namenull인 경우

또는

typesnull인 경우

또는

요소 중 하나 typesnull입니다.

ArgumentException

types가 다차원 배열인 경우

또는

modifiers가 다차원 배열인 경우

기본 바인더에서 처리 하지 않지만 ParameterModifier (의 modifiers 매개 변수), 추상을 사용할 수 있습니다 System.Reflection.Binder 는 사용자 지정 처리 하는 바인더를 작성 하는 클래스 modifiers. ParameterModifier COM interop를 통해 호출 하는 경우에 사용 되 고 참조로 전달 되는 매개 변수만 처리 됩니다.

다음 BindingFlags 필터 플래그 검색에 포함 하는 메서드를 정의 하는데 사용할 수 있습니다.

  • 중 하나를 지정 해야 BindingFlags.Instance 또는 BindingFlags.Static 반환 합니다.

  • 지정 BindingFlags.Public 검색에서 공용 메서드를 포함 하도록 합니다.

  • 지정 BindingFlags.NonPublic 검색에 public이 아닌 메서드 (즉, private, internal, 및 보호 된 메서드)를 포함 하도록 합니다.

  • 지정 BindingFlags.FlattenHierarchy 포함 하도록 publicprotected 상위 계층; 정적 멤버 private 상속 된 클래스의 정적 멤버는 포함 되지 않습니다.

다음 BindingFlags 보조키 플래그 검색의 작동 방식을 변경 하는데 사용할 수 있습니다.

  • BindingFlags.IgnoreCase 대/소문자를 무시 하려면 name합니다.

  • BindingFlags.DeclaredOnly 에 선언 된 메서드만 검색 하는 Type, 상속 된 메서드가 없습니다.

자세한 내용은 System.Reflection.BindingFlags를 참조하세요.

System_CAPS_note참고

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

이 메서드가 반환 하는 경우 현재 생성된 된 제네릭 형식을 나타냅니다는 MethodInfo 적절 한 형식 인수에 의해 대체 형식 매개 변수를 사용 합니다.

하는 경우 현재 Type 나타냅니다의 메서드나 클래스 제약 조건의 메서드 정의 제네릭 형식 또는 제네릭 메서드,이 메서드는 형식 매개 변수 검색 Object 클래스 제약 조건이 없는 경우.

System_CAPS_note참고

제네릭 메서드의 형식 인수에을 포함 하지 마십시오 name합니다.예를들어, C# 코드 GetMember("MyMethod<int>") 텍스트 이름의 멤버에 대 한 검색 "MyMethod<int>", 라는 메서드가 아니라 MyMethod 형식의 제네릭 인수가 하나 있는 int.

다음 예제에서는의 특정 오버 로드를 찾습니다 MethodA, 바인딩 제약 조건 및 다양 한 형식 인수를 지정 합니다.

System_CAPS_note참고

Visual C# 2005 예제는 /unsafe 컴파일러 옵션입니다.


using System;
using System.Reflection;

class Program
{
    // Methods to get:

    public void MethodA(int i, int j) { }

    public void MethodA(int[] i) { }

    public unsafe 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; }


  static void Main(string[] args)
  {
    MethodInfo mInfo;

    // Get MethodA(int i, int j)
    mInfo = typeof(Program).GetMethod("MethodA",
        BindingFlags.Public | BindingFlags.Instance,
        null,
        new Type[] { typeof(int), typeof(int) },
        null);
    Console.WriteLine("Found method: {0}", mInfo);

    // Get MethodA(int[] i)
    mInfo = typeof(Program).GetMethod("MethodA",
        BindingFlags.Public | BindingFlags.Instance,
        null,
        new Type[] { typeof(int[]) },
        null);
    Console.WriteLine("Found method: {0}", mInfo);

    // Get MethodA(int* i)
    mInfo = typeof(Program).GetMethod("MethodA",
        BindingFlags.Public | BindingFlags.Instance,
        null,
        new Type[] { typeof(int).MakePointerType() },
        null);
    Console.WriteLine("Found method: {0}", mInfo);

    // Get MethodA(ref int r)
    mInfo = typeof(Program).GetMethod("MethodA",
        BindingFlags.Public | BindingFlags.Instance,
        null,
        new Type[] { typeof(int).MakeByRefType() },
        null);
    Console.WriteLine("Found method: {0}", mInfo);

    // Get MethodA(int i, out int o)
    mInfo = typeof(Program).GetMethod("MethodA",
        BindingFlags.Public | BindingFlags.Instance,
        null,
        new Type[] { typeof(int), typeof(int).MakeByRefType() },
        null);
    Console.WriteLine("Found method: {0}", mInfo);

  }
}

.NET Framework
1.1 이후에 사용 가능
Silverlight
2.0 이후에 사용 가능
Windows Phone Silverlight
7.0 이후에 사용 가능
맨 위로 이동
표시: