У меня класс имплементит IEnumerable<T>. Я хочу в наследнике частично переопределить GetEnumerator(), то есть, в одном случае yield return что-то своё, а в другом -- то, что возвращает предок.
Вот так не даёт:
| Код | public override IEnumerator<object> GetEnumerator() { if (!matched) { yield return minCount; yield return maxCount; yield return sample; } else { foreach (object o in base) { yield return o; } } }
|
Добавлено через 2 минуты и 29 секунд Вот так можно, но некрасиво:
| Код | public override IEnumerator<object> GetEnumerator() { if (!matched) { yield return minCount; yield return maxCount; yield return sample; } else { IEnumerator<object> bi = base.GetEnumerator(); while (bi.MoveNext()) { yield return bi.Current; } } }
|
|