Compiler Error CS1621
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()
{
}
}
Iterators (C# Programming Guide)
Lambda Expressions (C# Programming Guide)
Anonymous Methods (C# Programming Guide)
Date |
History |
Reason |
---|---|---|
October 2008 |
Added links to related topics. |
Customer feedback. |