条件(三元)算子中的条件
本文关键字:条件 三元 | 更新日期: 2023-09-27 18:15:10
如何使用三元运算符实现这一点?
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
}
我可以使用三元运算符实现这一点吗?如果没有,该怎么办?
a = (UnitType == null) ? (ElevationType ?? StructureType) : UnitType;
但我坚持我的评论:这比其他情况更难理解。
或者,可能是
a = UnitType ?? ElevationType ?? StructureType;
如果您熟悉??
运算符,这一点就相当清楚了。
如果你需要用三元运算符来做这件事,你可以像这个一样格式化它以获得更好的清晰度
a = UnitType == null ?
(ElevationType == null ?
StructureType
: ElevationType)
: UnitType;
您也可以使用null coalize,这是??
运算符,它表示如果对象不是null,则返回它,如果是,则返回this。
a = UnitType == null ?
(ElevationType ?? StructureType)
: UnitType;
只需编写单独的方法,不要使用嵌套的?
运算符,因为这对每个人来说都是痛苦的(不可读,提示错误(。如果明天你的类型再扩展2个类型,你的三元运算符会变成地狱。
public TypeOfA GetTypeOfAMethod()
{
if(UnitType != null)
return UnitType;
if(ElevationType != null)
return ElevationType;
if(StructureType != null)
return StructureType
return null;
}