Я столкнулся с небольшой проблемой (на этот раз):
Когда я отлаживаю свой код в Visual Studio Community 2017 и редактирую все, что находится внутри foreach, все переменные в этой области, включая итерируемую переменную, устанавливаются в ноль.
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, чтобы пойти дальше, потому что я хотел проверить эту проблему в тот момент, все переменные, показанные во фрагменте, стали 'нулевыми'.
Может ли кто-нибудь объяснить мне, почему это происходит и как я могу избежать этого?
В настоящее время это незначительное беспокойство, когда я меняю вещи, но если это случится позже в более крупном проекте, это будет настоящей проблемой ...
Редактировать: вот ссылка на весь код, это просто консольное приложение, к счастью, это легко сделать
https://www.pastiebin.com/5cf3e7dfa2985