2010-08-05 2 views
4

제 목적은 클래스가 직접 인터페이스를 구현하는지 알아 보는 것입니다. 아래 예제에서 클래스 B는 인터페이스 IB를 구현하고 인터페이스 IB는 IA를 구현합니다.유형에 대한 인터페이스 상속 계층 구조는 어떻게 찾습니까?

어떻게 상속 계층을 찾을 수 있습니까? 개체 브라우저에서 형식을 볼 때 상세한 계층 구조를 보여줍니다. 비슷한 결과를 얻으려면 어떻게해야합니까?

interface IA 
{ 
    string Member1 { get;set; } 
} 

interface IB : IA 
{ 
    string Member2 { get; set; } 
} 

class B : IB 
{ 
    public string Member1 { get; set; } 
    public string Member2 { get; set; } 
} 

리플렉터 스크린 반사기 찍은 스크린 샷

alt text http://img571.imageshack.us/img571/7485/49211426.png

그것뿐만 아니라 인터페이스의 계층 구조를 나타낸다.

유형에 대한 인터페이스 계층 구조는 어떻게 찾을 수 있습니까?

+1

http://msdn.microsoft.com/en-us/library/system.type.basetype.aspx –

+0

B (typeof (B) .BaseType)의 기본 형식은 Object – Zuhaib

+0

을 반환합니다. 다른 유형에 의해 상속되고 인터페이스 자체를 검사 할 수 있습니다 ... 'Type.GetInterfaces Method'와 같이 (모든 인터페이스를 얻기 위해 재귀 적으로 호출 할 수 있습니다 - 실제로는 효과가 없지만 작동합니다). –

답변

3

Reflection과 .NET 코어는 인터페이스를 빠르게 사용할 수 있도록 제작되었습니다. 따라서 Type.GetInterfaces는 유형이 응답 할 수있는 모든 인터페이스를 반환하고 프로세스의 인터페이스 계층 구조를 "평평하게"만듭니다.

이러한 인터페이스의 조상을 신상화하려면 각 인터페이스에서 GetInterfaces를 호출해야합니다. 인터페이스의 계층 구조가 CLR 런타임에 거의 가치가 없기 때문에 지름길은 없습니다.

관련 문제