簡體   English   中英

條件語句中的C#6.0 null運算符

[英]C# 6.0 null operator in a conditional statement

根據我在C#6.0中使用新的null運算符收集的內容,您可以執行以下操作:

string name = people.FirstOrDefault()?.FullName;

這很棒,但我經常遇到的一個驗證是這樣的:

object name = null;
if(name != null) {
    DoSomething();
} else {
    DoSomethingElse();
}

鑒於新的null運算符的目的,我希望這樣的事情應該是可能的:

if(name?) {
    DoSomething();
} else {
    DoSomethingElse();
}

這里的問題從我的理解是什么時候的價值? 檢查實際上是null ,它返回null ,並且你需要一個if語句的bool條件。 既然你不能直接將null轉換為bool ,那么有沒有一種更簡單的方法來檢查它而不使用C#6.0中的new null運算符if(name != null)

這樣做沒有意義。 你在你的例子中沒有做任何空合並 - 你只是檢查null。

如果要檢查name對象的某個成員,可以更好地使用。 例如:

if (name?.FirstName != null) ...

但正如你所看到的,它仍然是一個簡單的null比較 - 我們只是使用null合並來避免寫這樣的東西:

if (name != null && name.FirstName != null) ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM