2009-07-09 7 views
31

C#에서는 주어진 클래스의 기본 클래스에 대한 참조를 얻는 방법은 무엇입니까?C# : 클래스의 기본 클래스는 어떻게 구합니까?

예를 들어 특정 클래스 인 MyClass이 있고 MyClass '수퍼 클래스에 대한 참조를 얻고 싶다고 가정 해 보겠습니다.

는이 같은 마음 뭔가가 :

Type superClass = MyClass.GetBase() ; 
// then, do something with superClass 

그러나 더 적합 GetBase 방법이없는 나타납니다.

Type superClass = myObject.GetType().BaseType; 

documentation

답변

44

현재 클래스의 유형에서 반사를 사용하십시오.

Type superClass = myClass.GetType().BaseType; 
20
Type superClass = typeof(MyClass).BaseType; 

또한, 당신이 얻을 수있는이 유형의 baseType 여기서 얻을 다음 GetType을 사용하여 입력의 Type.BaseType 속성이 당신이 찾고있는 것입니다.

Type superClass = typeof(MyClass).BaseType; 
2

: 당신이 당신의 현재 객체의 유형을 모르는 경우

-1

을 사용하면됩니다.

5

이 (있는 경우) 기본 유형을 얻을 그것의 인스턴스를 생성합니다 : 당신이 컴파일시에 유형이 다음을 사용 모르는 경우, 또는

Type baseType = typeof(MyClass).BaseType; 
object o = null; 
if(baseType != null) { 
    o = Activator.CreateInstance(baseType); 
} 

을 :

object myObject; 
Type baseType = myObject.GetType().BaseType; 
object o = null; 
if(baseType != null) { 
    o = Activator.CreateInstance(baseType); 
} 

MSDN의 Type.BaseTypeActivator.CreateInstance을 참조하십시오.

2

obj.base은 파생 된 개체 obj의 인스턴스에서 상위 개체에 대한 참조를 가져옵니다.

대해서 typeof (OBJ) .BaseType는 파생 된 개체 OBJ의 인스턴스에서 당신에게 부모 개체의 유형에 대한 참조를 얻을 것이다.

+0

'base'와'this'는 인스턴스 메소드에서만 사용할 수 있습니다. –

관련 문제