CS1623 de erro do compilador

Mensagem de erro

Iteradores não podem ter ref ou out parâmetros

Este erro ocorre se um método iterador usa um ref ou out parâmetro. Para evitar esse erro, remova o ref ou out palavra-chave de assinatura do método.

Exemplo

O exemplo a seguir gera CS1623:

// CS1623.cs
using System.Collections;

class C : IEnumerable
{
    public IEnumerator GetEnumerator()
    {
        yield return 0;
    }

    // To resolve the error, remove ref
    public IEnumerator GetEnumerator(ref int i)  // CS1623
    {
        yield return i;
    }

    // To resolve the error, remove out
    public IEnumerator GetEnumerator(out float f)  // CS1623
    {
        f = 0.0F;
        yield return f;
    }
}