Поделиться через


Ошибка компилятора CS1622

Обновлен: Ноябрь 2007

Сообщение об ошибке

Не удается вернуть значение из итератора. Для возврата значения используйте оператор "yield return" или "yield break" для завершения итерации.
Cannot return a value from an iterator. Use the yield return statement to return a value, or yield break to end the iteration.

Итератор – это специальная функция, возвращающая значение через оператор "yield", а не через оператор "return". Дополнительные сведения см. в разделе итераторы.

Следующий пример приводит к возникновению ошибки CS1622:

// CS1622.cs
// compile with: /target:library
using System.Collections;

class C : IEnumerable
{
   public IEnumerator GetEnumerator()
   {
      return (IEnumerator) this;  // CS1622
      yield return this;   // OK
   }
}