Error del compilador CS1622

Actualización: noviembre 2007

Mensaje de error

No se puede devolver un valor a partir de un iterador. Utilice la instrucción yield return para devolver un valor o yield break para terminar la iteración.
Cannot return a value from an iterator. Use the yield return statement to return a value, or yield break to end the iteration.

Un elemento de iteración es una función especial que devuelve un valor a través de la instrucción yield en lugar de la instrucción return. Para obtener más información, vea elementos de iteración.

El código siguiente genera el error CS1622:

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

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