我有一些由API返回的普通C#对象,其中包含几层嵌套的POCOs。我需要访问这些结构中深处包含的字段,但是因为API在数据缺失时将这些嵌套对象保留为空,所以我不得不进行大量的空引用检查才能获得我真正想要的字段。
if(obj != null && obj.Inner != null && obj.Inner.Innerer != null) { ... }
我想到的最简短的形式是使用三元运算符。
obj != null && obj.Inner != null && obj.Inner.Innerer != null ? obj.Inner.Innerer.Field : null;
C#有没有不需要编写所有比较的方法来完成这个任务?我希望有一个简短而简单的解决方案,类似于:
obj.Inner.Innerer.Field ?? null;
但这仅仅是检查Field是否为null。