2010-05-24 6 views
2

IEnumerator < 상태를 구현하려고 시도했지만 두 개의 다른 속성에 대한 오류가 구현되지 않았습니다.다른 네임 스페이스에 여러 속성 구현

'DataReader를' 인터페이스 멤버를 구현하지 않습니다 'System.Collections.Generic.IEnumerator.Current'

'DataReader를'구현하지 않습니다 인터페이스 멤버 'System.Collections.IEnumerator.Current' 일

솔루션이었다 :

public Status Current { get; set; } 

    object System.Collections.IEnumerator.Current 
    { 
     get { throw new NotImplementedException(); } 
    } 

같은 이름의 여러 속성을 다른 네임 스페이스로 구분할 수있는 것처럼 보입니다.

이 유형의 "속성 오버로드"은 무엇입니까? 그리고 어떻게 알 수 있습니까?

답변

4

두 번째 속성 구현은 명시 적 인터페이스 구현입니다. IEnumerable 인터페이스에는 특히 Current 속성이 구현됩니다. 이 작업을 수행해야하는 이유는 클래스의 Current 속성이 동일한 유형 (Statusobject)이 아니므로 인터페이스가 지정하는 것과 일치하지 않기 때문입니다.

+0

명시 적으로 구현 된 인터페이스 멤버는 인터페이스에 대한 참조를 통해서만 액세스 할 수 있으므로 클래스 참조를 사용하려면 클래스 참조를 인터페이스 유형으로 변환해야합니다. – Richard

관련 문제