Здравствуйте , не могу понять один листинг вот отсюда :
msdn.microsoft.com/ru-ru/library/1t2267t6.aspx
Помимо того , что этот пример у меня не запускается( компилятор намекает , что эти 2 интерфейса шаблонные) ,
я не особо понимаю вот этот к примеру кусок кода ( класса People )
1)Насколько я помню экземпляры интерфейса создавать нельзя ,
потому не понятно как метод IEnumerable.GetEnumerator() может иметь возвращаемый тип интерфейса IEnumerator
2)Метод GetEnumerator() вернет объект класса PeopleEnum , а затем (return (IEnumerator) GetEnumerator())
каким-то образом его приведет опять к интерфейсу IEnumerator , что тоже не совсем понятно .
3)Для чего вообще нужно реализовать эти 2 интерфейса ? По ссылке было написано что-то подобное :
"Они реализуются для поддержки использования синтаксиса foreach (For Each в Visual Basic) с целью перебора элементов коллекции."
ОК , ясно , но следующий код работает с тем же успехом , но никакой реализации этих 2-х интерфейсов нет :
В общем кто-нибудь , кому не сложно, просветите зачем вообще эти 2 интерфейса , а то я
видимо чего-то не догоняю.Заранее спасибо.