C#优雅的方法来检查属性的属性是否为null

在C#中,假设您想在此示例中从PropertyC中提取一个值,并且ObjectA,PropertyA和PropertyB都可以为null。

ObjectA.PropertyA.PropertyB.PropertyC

如何以最少的代码安全地获取PropertyC?

现在,我将检查:

if(ObjectA != null && ObjectA.PropertyA !=null && ObjectA.PropertyA.PropertyB != null)

{

// safely pull off the value

int value = objectA.PropertyA.PropertyB.PropertyC;

}

做更多类似这样的事情(伪代码)会很好。

int value = ObjectA.PropertyA.PropertyB ? ObjectA.PropertyA.PropertyB : defaultVal;

可能甚至会因为使用空伙伴运算符而崩溃。

最初,我说我的第二个示例就像js,但是我将其更改为伪代码,因为正确地指出了它在js中不起作用。

回答:

在C#6中,可以使用Null条件运算符。因此原始测试将是:

int? value = objectA?.PropertyA?.PropertyB?.PropertyC;

以上是 C#优雅的方法来检查属性的属性是否为null 的全部内容, 来源链接: utcz.com/qa/399614.html

回到顶部