2017-05-04 206 views
1

時的古怪行爲我有簡單的代碼:的Visual Studio 2017年調試

CommissionTierEntity tier = structure.Tiers.FirstOrDefault(x => commiossionInfo.Sum >= x.NumberFrom && commiossionInfo.Sum <= x.NumberTo); 
if (tier != null) 
    { 
    com.PaymentAmount = trade.PipValue * (tier.Commission/100); 
    commiossionInfo.Sum += com.PaymentAmount; 
    payable = true; 
    } 

tier變量爲空,但仍進入到if塊 看到波紋管截屏

enter image description here

更奇怪的是,我寫到控制檯,空對象的成員,它被寫入控制檯... =

enter image description here

+0

你不能總是相信你所看到的,調試器是不是在VS2015和VS2017非常可靠的。您可以通過工具>選項>調試>常規>「使用託管兼容模式」選項獲得另一種意見。強制使用舊版本的調試引擎。或者繼續前進。 –

+0

同樣的東西..'null'並進入裏面。 – SexyMF

+0

代碼中的「com」與COM有什麼關係?注意COM對象具有線程關聯性,調試表達式在另一個對COM對象不友好的線程上執行。 –

回答

0

,這是因爲可能你有你的數據庫中的列的默認值,當你使用它FirstOrDefault試圖讓你行,如果它不能還給你列的默認值。
嘗試使用First insted。請注意,First在未找到行的情況下會拋出異常。

Enumerable.FirstOrDefault Method (IEnumerable)

+0

這不是。 'First'也返回'false'。然後是同樣的行爲。 – SexyMF