我有以下代码:如果语句行为奇怪
var test = _myDictionary.ContainsKey(myKey);
if (!test)
{
Logger.Error("My log message");
throw new ApplicationException("My exception message");
}
本词典收录的关键。在调试时的test
值true
会发生什么事,是代码直接跳转到throw
声明,跳过调用Logger
,而它确实不应该这样做既不 - 它应该只是跳过整个块继续执行。
我已经完全从存储库中取代了源代码,我已经清理并重建了许多次,但无济于事。
然而,当我改变了我的代码
if (test)
{
// my code
}
else
{
Logger.Error("My log message");
throw new ApplicationException("My exception message");
}
一切正常。
任何想法可能会发生在这里?它的工作原理与现在一样,但我不会轻易放松,除非我知道这可能是什么原因。
UPDATE:我删除了我的.suo文件和输出文件夹中的一些二进制文件,即使我清理了解决方案也没有删除它们。在此之后,它似乎工作正常
听起来调试器附加到旧版本的代码。试图重新启动机器? – CodingIntrigue
@PatrickHofman我假设你在开玩笑 –
除非你提供一个简短但完整的样本来重现问题,否则这些问题是无法回答的。 –