如何使用 Null-Conditional Operator 来检查是否为 Null?

How to use Null-Conditional Operator to check for not Null?

例如,

!_Worker?.StartWork() ?? "Work has started on current thread.";

Console.WriteLine(_Worker);

public string StartWork()
{
 //Do some work here.
}

为了简化而不是使用 C# 6.0,

if(!_Worker == null)
{
     _Worker = "Work has started on current thread.";
     Console.WriteLine(_Worker);
     StartWork();

}

这两个例子等同吗?

当 _Worker = null 时,我希望结果写出 "Work has started on current thread. "。

空条件运算符是为解决这个问题而编写的:

if(someObject!=null 
    && someObject.ItsProperty!= null 
    && someObject.ItsProperty.PropertyOfThatThing!=null)
{
    theValueIWant == someObject.ItsProperty.PropertyOfThatThing.AnotherProperty;
}

现在我们可以写了

theValueIWant = someObject?.ItsProperty?.PropertyOfThatThing?.AnotherProperty;

所以这不是检查 null 的方法 - 已经存在。 if(x==null)if(x!=null)。如果那是唯一的需要,那么就不会添加这个新的运算符。它是关于访问可能为空的 class 的成员。