我有一個if語句變量有一個空值,但如果聲明中仍然得到所謂
if (materialtype != "WINDOWVINYLREPL"
|| materialtype != "ROOFING"
&& materialtype != "null"
&& materialtype != null)
{
subtype = (from a in UEF.MaterialSubTypes
where a.MaterialSubType1.Equals(subtype) && a.Code.Contains(materialtype)
select a.Code).FirstOrDefault();
}
而且即使materialtype等於空if語句仍然被調用,它不應該是
你的第一個''||是短路剩下的條件。如果'materialtype!=「WINDOWVINYLREPL',那麼這就是一個真實的陳述,這就像輸入代碼塊需要知道的|| || – Abion47
那麼,如果'materialtype'爲'null',那麼'materialtype!= 「WINDOWVINYLREPL」是'true',所以'if'的主體被執行是合乎邏輯的,爲什麼你會期望有什麼不同?如果你希望在'null'時不執行它,那麼修改表達式。 – Jesper
TRUE OR FALSE = TRUE'這不是短路問題,這是正確的行爲。第一個比較結果爲TRUE –