如何使用 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 的成员。
例如,
!_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 的成员。