Compiler Error CS1621

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

You cannot use the yield statement in an anonymous method or a lambda expression.

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;  
        // Try this instead:  
        // MyDelegate d = delegate { return this; };  
        // yield return d();  
    public static void Main()  

See also