在 C# 中,假设您想在此示例中从 PropertyC 中提取一个值,并且 ObjectA、PropertyA 和 PropertyB 都可以为空。
对象A.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 中不起作用。