如何使用三元运算符实现此目的?
if(UnitType == null)
{
a = ElevationType
}
else
{
a = UnitType
}
三元运营商
a = UnitType == null ? ElevationType : UnitType;
现在我想要这样的东西
if(UnitType == null)
{
if(ElevationType == null)
{
a = StructureType
}
else{
a = ElevationType
}
}
else
{
a = UnitType
}
我可以使用三元运算符实现此目的吗?如果没有,应该做什么?
答案 0 :(得分:9)
a = (UnitType == null) ? (ElevationType ?? StructureType) : UnitType;
但我支持我的评论:这比if-else更难理解。
或者,可能,
a = UnitType ?? ElevationType ?? StructureType;
如果您熟悉??
运算符,则相当清楚。
答案 1 :(得分:3)
如果您需要使用三元运算符执行此操作,可以对其进行格式化,以便更加清晰,如此
??
你也可以null coalesce,这是a = UnitType == null ?
(ElevationType ?? StructureType)
: UnitType;
运算符,如果对象不为null,则返回它,如果它返回它,则返回它。
... "' AND Protected = '" + isBottomLevel + "' ";
答案 2 :(得分:1)
只需编写单独的方法,不要使用嵌套的public TypeOfA GetTypeOfAMethod()
{
if(UnitType != null)
return UnitType;
if(ElevationType != null)
return ElevationType;
if(StructureType != null)
return StructureType
return null;
}
运算符,因为它对每个人都是痛苦的(不可读,提示错误)。如果明天您的类型延伸了2个类型,那么您的三元运算符将成为地狱。
{{1}}