Share via


Compiler Error CS1623

Iterators cannot have ref or out parameters

This error occurs if an iterator method takes a ref or out parameter. To avoid this error, remove the ref or out keyword from the method signature.

Example

The following sample generates 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;
    }
}