编译器错误 CS1621

不能在匿名方法或 lambda 表达式内使用 yield 语句

不能在匿名方法Lambda 表达式内使用 yield 语句。

下面的示例生成 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()  
    {  
    }  
}  

另请参阅