我有以下代碼:如果語句行爲奇怪
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我假設你在開玩笑 –
除非你提供一個簡短但完整的樣本來重現問題,否則這些問題是無法回答的。 –