2010-05-24 51 views
2

我試圖實現IEnumerator < Status>但是獲得了關於兩個不同的屬性沒有實現的錯誤。在不同命名空間中實現多個屬性

'的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屬性不是同一類型(Status vs object),因此它不符合接口規定的內容。

+0

而明確實現的接口成員只能通過對接口的引用來訪問,所以你需要將類引用轉換爲接口類型來使用它們。 – Richard 2010-05-24 08:04:42