我有一個條件我寫這是檢查三件事情。試圖理解爲什麼resharper告訴我表達式總是假的
if(LoggedInMembershipUser == null || obj == null || boolVal)
在這種情況下,「LoggedInMembershipUser」
只是Membership.GetUser()「目標文件」是一些隨機的業務對象,而「boolVal」顯然是一個布爾值。當我按照上面的語句編寫語句時,resharper告訴我,語句的boolVal部分總是爲false。但是當我把boolVal作爲下面的beginnig時,我沒有得到這個通知。
if(boolVal|| LoggedInMembershipUser == null || obj == null)
爲什麼第一個總是假而第二個不是?
編輯:這是在網格視圖的行數據綁定。網格顯示來自兩個具有相同基類的對象的結果,因此如果「obj」是對象類型之一而不是另一個,則「obj」將具有值。 boolVal是一個指示器,它是哪種類型的對象現在我想到了它我猜如果obj爲null,那麼boolVal將始終爲真。是resharper意識到一些如何?哦,我敢打賭,這是因爲看我的代碼我上面的線:
if (!uploaded){
var obj = GetObjectLogic();
}
好的感謝您的幫助意見。我想這可以被投票刪除或其他。
「boolVal」是局部變量,字段還是屬性?對於'obj'和'LoggedInMembershipUser'也是同樣的問題。 –
唯一想到的就是短路。嘗試使用'|'而不是'||'來查看resharper是否仍然抱怨。 – juharr
你可以把(短)測試方法放在一起,以便我們可以在上下文中看到這一點。 – gh9