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