【问题标题】:When to use ? instead of null [duplicate]何时使用?而不是 null [重复]
【发布时间】:2018-07-13 16:55:51
【问题描述】:

谁能解释一下两者的区别:

if(object?.Count > 0){
    //code   
}

和:

if(object != null && object.Count > 0){
    //code   
}

还是他们在做同样的事情?谢谢。

【问题讨论】:

  • documentation 很好地描述了语义。特别是,不,在object 很复杂的情况下它们不是一回事,因为空条件运算符只评估其目标一次。
  • object? 视为if (object == null) return null; - 将它们放在一起,您就可以在尝试调用.Count 之前有效地检查object != null。相关问题here.
  • 我曾经想知道为什么人们在 cmets 中回答,但在试图提供帮助而被否决后,我现在明白了。

标签: c#


【解决方案1】:

问号是空条件运算符 (https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-conditional-operators)。如果您使用的是 C# 6 或更高版本,它会更短且更精确。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 2010-12-09
    • 2012-07-11
    相关资源
    最近更新 更多