条件(三元)运算符中的条件
Condition in Conditional (Ternary) Operator
如何使用三元运算符实现它?
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;
但我坚持我的意见:这比 if-else 更难理解。
或者,可能,
a = UnitType ?? ElevationType ?? StructureType;
如果您熟悉 ??
运算符,这就很清楚了。
只写单独的方法,不要使用嵌套的?
运算符,因为这对每个人来说都是痛苦的(不可读,提示错误)。如果明天你的类型扩展了 2 个类型,你的三元运算符将变得糟糕。
public TypeOfA GetTypeOfAMethod()
{
if(UnitType != null)
return UnitType;
if(ElevationType != null)
return ElevationType;
if(StructureType != null)
return StructureType
return null;
}
如果您需要使用三元运算符来执行此操作,可以像这样对其进行格式化以便更清晰
a = UnitType == null ?
(ElevationType == null ?
StructureType
: ElevationType)
: UnitType;
你也可以空合并,这是??
运算符,这表示如果对象不为空,return它,如果它是return这个。
a = UnitType == null ?
(ElevationType ?? StructureType)
: UnitType;
如何使用三元运算符实现它?
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;
但我坚持我的意见:这比 if-else 更难理解。
或者,可能,
a = UnitType ?? ElevationType ?? StructureType;
如果您熟悉 ??
运算符,这就很清楚了。
只写单独的方法,不要使用嵌套的?
运算符,因为这对每个人来说都是痛苦的(不可读,提示错误)。如果明天你的类型扩展了 2 个类型,你的三元运算符将变得糟糕。
public TypeOfA GetTypeOfAMethod()
{
if(UnitType != null)
return UnitType;
if(ElevationType != null)
return ElevationType;
if(StructureType != null)
return StructureType
return null;
}
如果您需要使用三元运算符来执行此操作,可以像这样对其进行格式化以便更清晰
a = UnitType == null ?
(ElevationType == null ?
StructureType
: ElevationType)
: UnitType;
你也可以空合并,这是??
运算符,这表示如果对象不为空,return它,如果它是return这个。
a = UnitType == null ?
(ElevationType ?? StructureType)
: UnitType;