在使用Visual Studio 2015进行调试时出现值错误问题。

3
假设我们有一个示例代码(VS2015,WinForms,.Net 4.6.1):
List<int> items = new List<int>();
private async Task test(int id)
{
    id = 1;
    int id_real = id;

    int index = items.FindIndex(x => x == id);
}

private async void button1_Click(object sender, EventArgs e)
{
    await test(0);
}

现在是“该功能”: enter image description here 这是怎么做到的?有趣的部分是——这只是 Visual Studio watcher 的问题,运行时结果仍然是正确的。
目前我知道这只发生在 VS2015 中,而且这种行为的原因是测试方法中的最后一个字符串。

它在我的VS2017中运行得很好...你试过那里吗?如果你看局部窗口而不是监视窗口会发生什么? - Jon Skeet
@JonSkeet,是的,我也尝试过VS2013和VS2017 - 没有问题。局部窗口显示与观察相同的结果。 - user6416335
1个回答

1

是的,这解决了问题。但是我只是好奇为什么没有启用此选项VS2013和VS2017可以正常工作呢? - user6416335
@Alek Depler,很高兴听到您解决了这个问题。据我所知,如果我们在VS2015中进行调试,并且使用早期的调试引擎构建了应用程序,则需要检查此选项。因此,如果我们启用该选项,将强制使用旧的调试引擎。但是我也同意您的看法,即使我们找到了解决此问题的方法,这也将是对VS2015的反馈。 - Jack Zhai
@Alek Depler,我会帮你向产品团队报告这个问题。当然,如果回复对你有帮助,请将其标记为答案。关于这个反馈,你可以添加评论并投票。 - Jack Zhai

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接