在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,但是我将其更改为psuedo代码,因为正确地指出了它在js中不起作用。
ObjectA
或PropertyA
为null 时,您都将收到“期望的对象”错误。