【发布时间】:2021-03-15 14:00:10
【问题描述】:
我想请教在级联条件下如何改进代码的任何提示,您必须询问属性内部的属性是否不为空。
只是简单的虚拟示例:
public class ClassA
{
public ClassB classB { get; set; }
}
public class ClassB
{
public List<ClassC> classesC { get; set; }
}
public class ClassC
{
public ClassD classD { get; set; }
}
public class ClassD
{
public string value { get; set; }
}
那么假设你想得到这样一个值:classA.classB.classesC.First().classD.value;
当这些类中的任何一个为空时,是否有任何有效的方法可以做到这一点并确保您不会收到错误?而不是很多条件:
if (classA != null && classA.classB != null && classA.classB.classesC != null && classA.classB.classesC.First() != null && classA.classB.classesC.First().classD != null) return classA.classB.classesC.First().classD.value;
请注意,我不是在寻找使用 try 块并捕获 NullException 的解决方案。
谢谢。
【问题讨论】:
-
猫王算子????
-
btw
First()将在没有元素时抛出...你应该考虑使用FirstOrDeafulat()
标签: c# optimization multiple-conditions