【发布时间】:2019-06-02 12:19:42
【问题描述】:
我遇到了一个小问题(这次),如下所示:
当我在 Visual Studio Community 2017 中调试我的代码并在 foreach 中编辑任何内容时,该范围内的所有变量(包括被迭代的变量)都设置为 null。
foreach (var bFile in baseCache) {
var file = lastFolder + "\\" + bFile.Value.relPath;
if (!lastCache.ContainsKey(file)) {
if (file.Length > 255) { continue; }
// TODO: do stuff when the file isn't present in the last backup
}
var lFile = lastCache[file];
var comp = bFile.Value.compare(lFile);
if (!comp.HasFlag(FileData.CompareFlags.CRC32 & FileData.CompareFlags.Size)) {
}
}
例如,在这部分中,我在第 4 行设置了一个断点,如果“lastCache”不包含当时由“file”表示的键,则断点所在的位置。
那时只有继续;坐在那个地方,我改变了它,就像现在显示的那样,当我按下 F10 时,因为我想在那个时候验证这个问题,所以 sn-p 中显示的所有变量都变成了“null”。
有人可以向我解释为什么会发生这种情况以及如何避免这种情况吗?
目前,当我更改内容时,这只是一个小麻烦,但如果稍后在更大的项目中发生这种情况,那将是一个真正的问题......
编辑:这是整个代码的链接,它只是一个控制台应用程序,幸运的是,这很容易完成 https://www.pastiebin.com/5cf3e7dfa2985
【问题讨论】:
标签: c# visual-studio debugging