我收到此错误消息,我找不到原因!有关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