[英]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.