Я изучаю шаблон итератора под капотом, так что в конце концов я смогу использовать его в некоторых классах.Вот тестовый класс:
public class MyGenericCollection : IEnumerable<int>
{
private int[] _data = { 1, 2, 3 };
public IEnumerator<int> GetEnumerator()
{
foreach (int i in _data)
{
yield return i;
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
Я запутался в разделе IEnumerable.GetEnumerator()
.В тестах кода, которые я запускал, на него никогда не ссылались и не использовали, но мне нужно иметь его для реализации универсального IEnumerable
.
. Я понимаю, что IEnumerable<T>
наследуется от IEnumerator
, поэтомучто я должен реализовать оба.
За пределами этого я запутался, когда когда-либо используется неуниверсальный интерфейс.В отладку это никогда не входило.Может ли кто-нибудь помочь мне понять?