내보내기(0) 인쇄
모두 확장

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

업데이트: 2007년 11월

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

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

public MethodInfo GetMethod(
	string name,
	Type[] types
)
public final MethodInfo GetMethod(
	String name,
	Type[] types
)
public final function GetMethod(
	name : String, 
	types : Type[]
) : MethodInfo

매개 변수

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

반환 값

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

구현

_Type.GetMethod(String, Type[])

예외상황
AmbiguousMatchException

지정된 이름과 지정된 매개 변수를 가진 메서드가 둘 이상 발견된 경우

ArgumentNullException

namenull인 경우

- 또는 -

typesnull인 경우

- 또는 -

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

ArgumentException

types가 다차원 배열인 경우

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

요청된 메서드가 public이 아니고 public이 아닌 개체를 현재 어셈블리의 외부에 리플렉션할 ReflectionPermission이 호출자에게 없는 경우 이 메서드는 null을 반환합니다.

6hy0h0z1.alert_note(ko-kr,VS.90).gif참고:

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

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

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

6hy0h0z1.alert_note(ko-kr,VS.90).gif참고:

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

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

6hy0h0z1.alert_note(ko-kr,VS.90).gif참고:

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 i)
    mInfo = typeof(Program).GetMethod("MethodA",
        new Type[] { typeof(int), typeof(int) });
    Console.WriteLine("Found method: {0}", mInfo);

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

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

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

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

  }
}



import System.*;
import System.Reflection.*;

public class Program
{
	// Methods to get:

	// Method that takes two integers:
	public void MethodA(int i, int j) { }
	// Method that takes an array
	public void MethodA(int[] i) { }

    public static void main(String[] args)
    {
		MethodInfo mInfo;
		Type tProgram = Program.class.ToType();


		// Get  MethodA(Int32, Int32)
		mInfo = tProgram.GetMethod("MethodA",
			new Type[] { int.class.ToType(), int.class.ToType()});
		Console.WriteLine("Found method: {0}", mInfo);

		// Get MethodA(int[])
		mInfo = tProgram.GetMethod("MethodA",
			new Type[] { int[].class.ToType() });
		Console.WriteLine("Found method: {0}", mInfo);

    }
}



Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

.NET Framework

3.5, 3.0, 2.0, 1.1, 1.0에서 지원

.NET Compact Framework

3.5, 2.0, 1.0에서 지원

XNA Framework

2.0, 1.0에서 지원

커뮤니티 추가 항목

추가
표시:
© 2015 Microsoft