在C#中,如何优雅地处理空检查

时间:2017-09-04 14:03:19

标签: c# .net

目前我们的代码为

var val = (returnCode as Code).Element(1).Attribute[2].Value
你可以看到,代码得到了返回值,这是一个固定的Object,它非常危险,可能是null引用异常

我们可以编写很多if来进行空检查,但还有其他优雅的方法可以处理吗?

1 个答案:

答案 0 :(得分:0)

如果您在评估表达式时害怕潜在的null,请使用 elvis运算符 ?.代替.来安全访问属性:< / p>

// val will be null if any in the chain is null
var val = (returnCode as Code)?.Element(1)?.Attribute[2]?.Value; 

在访问索引之前,您还可以使用?[检查数组是否为空:

Attribute?[2]