Здравствуйте, Дарней, Вы писали:
Я имел ввиду не это, а отсутствие необходимой выразительности в языке.
Когда например ты вынужден очередной раз тупо реализовывать какой-нибудь IEnumerator, когда можно просто написать:
void enumerator_func(...)
FindFirstFile
while
yield // <-- !!!
FindNextFile
IEnumerable en = FromFunc(enumerator_func)
foreach (f in en) ...
И компилятор автоматически сделает код, сохраняющий своё состояние между "yield-ами".