0 out of 1 rated this helpful - Rate this topic

Compiler Error CS1621

Updated: October 2008

The yield statement cannot be used inside an anonymous method or lambda expression

The yield statement cannot be in an anonymous method block in an iterator.

The following sample generates CS1621:

// CS1621.cs

using System.Collections;

delegate object MyDelegate();

class C : IEnumerable
{
    public IEnumerator GetEnumerator()
    {
        MyDelegate d = delegate
        {
            yield return this; // CS1621
            return this;
        };
        d();
        // Try this instead:
        // MyDelegate d = delegate { return this; };
        // yield return d();
    }

    public static void Main()
    {
    }
}

Date

History

Reason

October 2008

Added links to related topics.

Customer feedback.

Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ