내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Type.DeclaringType 속성

2013-12-13

현재 중첩 형식 또는 제네릭 형식 매개 변수를 선언하는 형식을 가져옵니다.

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

public override Type DeclaringType { get; }

속성 값

형식: System.Type
현재 형식이 중첩 형식이면 바깥쪽 형식을 나타내고 현재 형식이 제네릭 형식의 형식 매개 변수이면 제네릭 형식 정의를 나타내며 현재 형식이 제네릭 메서드의 형식 매개 변수이면 제네릭 메서드를 선언하는 형식을 나타내는 Type 개체이고, 그렇지 않으면 null입니다.

현재 Type 개체가 제네릭 형식의 형식 매개 변수를 나타내는 경우 이 속성은 제네릭 형식 정의를 반환합니다.

현재 Type 개체가 제네릭 메서드의 형식 매개 변수를 나타내는 경우 이 속성은 제네릭 메서드 정의가 포함된 형식을 반환합니다. 형식이 제네릭이면 제네릭 형식 정의가 반환됩니다.

현재 Type이 제네릭 형식 또는 제네릭 메서드 정의의 형식 매개 변수를 나타내는 경우 DeclaringTypeDeclaringMethod 속성은 제네릭 형식 매개 변수가 처음에 정의된 제네릭 형식 정의나 제네릭 메서드 정의를 식별합니다.

  • DeclaringMethod 속성이 MethodInfo를 반환하면 MethodInfo는 제네릭 메서드 정의를 나타내고 현재 Type 개체는 제네릭 메서드 정의의 형식 매개 변수를 나타냅니다.

  • DeclaringMethod 속성이 null을 반환하면 DeclaringType 속성은 제네릭 형식 정의를 나타내는 Type 개체를 항상 반환하고 현재 Type 개체는 제네릭 형식 정의의 형식 매개 변수를 나타냅니다.

  • IsGenericParameter 속성이 false인 형식의 DeclaringType 속성을 가져오면 InvalidOperationException이 발생합니다.

다음 예제에서는 파생 클래스의 메서드에 대한 선언 형식을 보여 줍니다.

참고참고:

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


using System;
using System.Reflection;

public abstract class Example
{

   public abstract class MyClassA
   {
      public abstract int m();
   }

   public abstract class MyClassB : MyClassA
   {
   }

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      outputBlock.Text += String.Format("The declaring type of m is {0}.",
          typeof(MyClassB).GetMethod("m").DeclaringType) + "\n";
   }
}


Windows Phone OS

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

Windows Phone

표시:
© 2014 Microsoft