小编iCo*_*ode的帖子

为什么我们不能为以下代码调试带有yield return的方法?

以下是我的代码:

class Program {
    static List<int> MyList;
    static void Main(string[] args) {
        MyList = new List<int>() { 1,24,56,7};
        var sn = FilterWithYield();
    }
    static IEnumerable<int> FilterWithYield() {
        foreach (int i in MyList) {
            if (i > 3)
                yield return i;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在FilterWithYield方法中有一个突破点,但它根本没有达到突破点.我在调用点有一个中断,即 var sn = FilterWithYield();Control点击此点并在调试窗口中正确显示结果.但是为什么控制不在FilterWithYield方法中停止?

还有一个问题.我读到yield将数据返回给调用者.如果将FilterWithYield方法的返回类型更改为通过错误将其返回到int,那么yield关键字是否总是需要IEnumerable<T>作为返回类型?

c# ienumerable yield-return

2
推荐指数
1
解决办法
3169
查看次数

标签 统计

c# ×1

ienumerable ×1

yield-return ×1