Type.IsSubclassOf 메서드

2013-12-13

현재 Type이 나타내는 클래스가 지정된 Type이 나타내는 클래스에서 파생되는지 여부를 확인합니다.

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

public virtual bool IsSubclassOf(
	Type c
)

매개 변수

c
형식: System.Type
현재 Type과 비교할 Type입니다.

반환 값

형식: System.Boolean
c 매개 변수가 나타내는 Type과 현재 Type이 클래스를 나타내고, 현재 Type이 나타내는 클래스가 c가 나타내는 클래스에서 파생되는 경우 true이고, 그렇지 않으면 false입니다. 이 메서드는 c 및 현재 Type이 동일한 클래스를 나타내는 경우에도 false를 반환합니다.

예외조건
ArgumentNullException

c 매개 변수가 null인 경우

IsSubclassOf 메서드를 사용하여 인터페이스가 다른 인터페이스에서 파생되는지 여부나 클래스가 인터페이스를 구현하는지 여부를 확인할 수 없습니다. 이를 확인하려면 GetInterface를 사용합니다. 형식이 인터페이스에서 파생되는 경우 이 메서드는 Object의 서브클래스인 해당 형식에 대해 true를 반환합니다.

현재 Type이 제네릭 형식 또는 제네릭 메서드 정의의 형식 매개 변수를 나타내는 경우 해당 클래스 제약 조건에서 파생되거나 클래스 제약 조건이 없는 경우 System.Object에서 파생됩니다.

참고참고:

IsSubclassOfIsAssignableFrom의 반대입니다. 즉, t1.IsSubclassOf(t2)true이면 t2.IsAssignableFrom(t1)true입니다.

이 메서드는 파생 클래스에서 재정의할 수 있습니다.

다음 예제에서는 클래스 인스턴스와 해당 파생 클래스 인스턴스를 만들어 IsSubclassOf 메서드 사용 방법을 보여 줍니다.

참고참고:

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


using System;

public class Class1 { }
public class DerivedC1 : Class1 { }

class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      Class1 myClass = new Class1();
      DerivedC1 myDClass = new DerivedC1();
      Type myClassType = myClass.GetType();
      Type myDClassType = myDClass.GetType();

      // Returns true:
      outputBlock.Text += String.Format("myDClass subclass of myClass: {0}", myDClassType.IsSubclassOf(myClassType)) + "\n";
   }
}


Windows Phone OS

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

Windows Phone

표시:
© 2014 Microsoft