Определенно плохая идея. В частности, это означает, что два вызова GetEnumerator
будут возвращать ссылки на один и тот же объект - когда они должны возвращать независимых итераторов.
Теперь, сказав, что компилятор C # будет генерировать классы, которые реализуют оба типа, если вы используете блоки итераторов ... но он делает все возможное, чтобы убедиться, что все правильно. Я предлагаю вам не испытывать себя от этой боли:)