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.

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;

Community Additions