我有几个由 API 返回的普通旧 C# 对象,并且在其中嵌套了几层 POCO。我需要访问包含在这些结构深处的字段,但是因为当数据丢失时 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 是否为空。