我正在嘗試進行以下檢查:
if (result?.Pets?.Any() == false) { ... }
如果result == null.. 那么它不在該if檢查的范圍內。
我認為這result?.將(在這種情況下)回傳null..然后嘗試這樣做:
if (null == false) { ... } // result == null
如果是這樣的話..然后呢?我的第一個想法是這樣的:
if (result?.Pets?.Any() == false ?? false) { .. }
但這是一個編譯器錯誤:(
uj5u.com熱心網友回復:
正如其他人所解釋的,null 不等于 false。使用 null-coalescing 運算子??來解決這個問題應該可以,但您的語法不正確。正確的語法是這樣的:
if ((result?.Pets?.Any() ?? false) == false) { ... }
但是,為了可讀性,我會選擇這樣的東西:
bool petsFound = result?.Pets?.Any() ?? false;
if (!petsFound) { ... }
或者,您可以使用空檢查和短路||運算子以舊方式執行此操作:
if (result?.Pets is null || !result.Pets.Any()) { ... }
uj5u.com熱心網友回復:
null不等于false,也不null等于true。解決這個問題的簡單方法是檢查結果?.Any() 是否不是 true(即null 或 false)。
if (result?.Pets?.Any() != true) { ... }
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/476524.html
