gpt4 book ai didi

c# - 调试器未命中断点

转载 作者:太空狗 更新时间:2023-10-29 19:52:16 26 4
gpt4 key购买 nike

我发现了一些很奇怪的东西(我想!)。如果我尝试在 yes() 方法中放置一个断点,它在执行该函数时将永远不会暂停程序。如果我尝试对任何其他代码行执行相同的操作,它将按预期工作。这是一个错误,还是有什么东西在逃避我?

过滤器将返回 2 个对象,除调试器外,一切似乎都按预期工作。

private void Form1_Load(object sender, EventArgs e) {
List<LOL> list = new List<LOL>();
list.Add(new LOL());
list.Add(new LOL());

IEnumerable<LOL> filter = list.Where(
delegate(LOL lol) {
return lol.yes();
}
);

string l = ""; <------this is hit by the debugger
}

class LOL {
public bool yes() {
bool ret = true; <---------this is NOT hit by the debugger
return ret;
}
}

最佳答案

Enumerable.Where 是惰性运算符——直到您调用通过 where 返回的 IEnumerable 的内容(即调用 .ToList() ),您的函数才会被调用。

试着将你的代码改成这样,看看它是否被调用:

....
IEnumerable<LOL> filter = list.Where(
delegate(LOL lol) {
return lol.yes();
}
).ToList();

string l = "";

关于c# - 调试器未命中断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1030504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com