检查对象是否为null并访问相同的if中的成员

时间:2017-01-10 09:43:26

标签: c#

我正在将一行代码从.NET 4.0折射到3.5,实际代码是

if(bar?.foo == "outdated")
    bar = new Bar();

我可以用这种方式折射这些线并保持相同的逻辑吗?

if(bar == null || bar.foo == "outdated")
    bar = new Bar();

if评估是否在bar == null之后停止(因为表达式为真,无论其他部分是返回true还是false),还是继续检查bar.foo即使第一部分已经返回true,因此抛出一个空异常?

1 个答案:

答案 0 :(得分:5)

是的它停止了,它被称为短路逻辑, 请检查此链接:https://msdn.microsoft.com/en-us/library/6373h346.aspx