Error del compilador CS1624

Actualización: noviembre 2007

Mensaje de error

El cuerpo de 'descriptor de acceso' no puede ser un bloque de iteradores porque 'tipo' no es un tipo de interfaz de iteradores
The body of 'accessor' cannot be an iterator block because 'type' is not an iterator interface type

Este error aparece si se utiliza un descriptor de acceso de iterador pero el tipo de valor devuelto no es ninguno de los tipos de interfaz de iterador: IEnumerable, IEnumerable<T>, IEnumerator, IEnumerator<T>. Para evitar este error, utilice uno de los tipos de interfaz de iterador como tipo de valor devuelto.

Ejemplo

En el código siguiente se genera el error CS1624:

// CS1624.cs
using System;
using System.Collections;

class C
{
    public int Iterator
    // Try this instead:
    // public IEnumerable Iterator
    {
        get  // CS1624
        {
            yield return 1;
        }
    }
}