Некоторые ограничения использования оператора yield в C#:
Объект, возвращаемый yield-методом, не имеет корректной реализации метода Reset. habr.com При попытке вызова Reset у этого объекта будет выброшено исключение типа NotSupportedException. habr.com Поэтому нельзя передавать объект-генератор в методы, которые могут вызвать у него Reset. habr.com
Yield нельзя использовать в анонимных методах или лямбда-выражениях. habr.com
Yield нельзя использовать в методах, содержащих unsafe-код. habr.com До C# 13 это ограничение было строгим: yield недопустимо в любом методе с блоком unsafe. learn.microsoft.com Начиная с C# 13, yield можно использовать в методах с unsafe-блоками, но не в самом блоке unsafe. learn.microsoft.com
Конструкцию yield return нельзя использовать внутри блока try-catch. habr.com Однако это ограничение не касается секций try блоков try-finally. habr.com Yield break можно использовать в секциях try как try-catch, так и try-finally блоков. habr.com
Метод итератора, использующий yield, не может использовать return-инструкцию для возврата последовательности. video2.skills-academy.com
Метод итератора должен объявить тип интерфейса итератора в качестве возвращаемого типа. video2.skills-academy.com Типы интерфейсов итератора: IEnumerable, IEnumerable<T>, IEnumerator, IEnumerator<T>. video2.skills-academy.com
Примеры полезных ответов Поиска с Алисой на вопросы из разных сфер. Вопросы сгенерированы нейросетью YandexGPT для актуальных тем, которые определяются на базе обобщённых запросов к Поиску с Алисой.