Я получаю это сообщение об ошибке, и я не могу понять, почему!Сообщение об ошибке 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();
}
}
Просто не бросайте объект innerCollection для реализаций IEnumerable и IEnumerable. Посмотрите мой полный код в опубликованном ответе ниже ... –
code4life
Я заметил, что сообщение об ошибке сообщает вам * точно, что здесь происходит неправильно: IEnumerable не был реализован, что он должен быть реализован и что единственный метод который может реализовать его, имеет неправильный тип возврата. Это уже привело к довольно сложному анализу ошибок, но этого было недостаточно, чтобы позволить вам самостоятельно диагностировать проблему. Было ли более полезным сообщение об ошибке? Какое сообщение об ошибке позволило бы вам диагностировать проблему, не прося о помощи? –
Я новичок и читаю книгу Wrox (новичок) Visual C#. Я не знал, что мне нужно было реализовать IEnumerable и IEnumerable, поскольку это даже не упоминается в книге. Плюс этот код был ответом упражнения (интересно, проверяли ли они код перед печатью). Я посмотрел на сайт msdn и форум wrox, но они не упоминают об этом. Должен сказать, IEnumerable для меня довольно трудно учиться. Но теперь, когда я снова прочитал ошибку, я согласен, что имеет смысл. –