我收到此錯誤消息,我找不到原因!有關IEnumerable.GetEnumerator()的錯誤消息
Error 1 'Exo5Chap12.ShortCollection<T>' does not implement interface member
'System.Collections.IEnumerable.GetEnumerator()'.
'Exo5Chap12.ShortCollection<T>.GetEnumerator()' cannot implement
'System.Collections.IEnumerable.GetEnumerator()' because it does not have the matching
return type of 'System.Collections.IEnumerator'.
E:\MyFolders\Dev\c#\Chapter12\Exo5Chap12\Exo5Chap12\exo5.cs 9 18 Exo5Chap12
這是帶有GetEnumerator()實現的代碼。 有什麼不對?
public class ShortCollection<T> : IList<T>
{
protected Collection<T> innerCollection;
protected int maxSize = 10;
public IEnumerator<T> GetEnumerator()
{
return (innerCollection as IEnumerator<T>).GetEnumerator();
}
}
簡單地不要爲IEnumerable和IEnumerable實現都強制轉換innerCollection對象。請在下面發佈的答案中查看我的完整代碼... – code4life 2010-06-05 19:05:23
我注意到錯誤消息告訴你*確切地說*這裏發生了什麼問題:IEnumerable尚未實現,是否需要實現,以及唯一的方法可能會實現它具有錯誤的返回類型。這已經花了相當複雜的錯誤分析,但還不足以讓您自己診斷問題。一個不同的錯誤信息會更有幫助嗎?什麼樣的錯誤信息可以幫助您在不尋求幫助的情況下診斷問題? – 2010-06-05 20:54:47
我是新手,正在閱讀Wrox(初學者)Visual C#書。我不知道我必須同時實現IEnumerable和IEnumerable,因爲它在書中沒有提及。此外,代碼是練習的答案(想知道他們是否在打印之前檢查了代碼)。我看了一下msdn網站和wrox論壇,但他們也沒有提到它。我必須說IEnumerable對我來說很難學。但是現在我再次讀取錯誤,我同意這是有道理的。 –
2010-06-05 21:30:26