条件(三元)算子的条件

zar*_*han 4 c# conditional if-statement ternary-operator

如何使用三元运算符实现此功能?

if(UnitType == null)
{
    a = ElevationType
}
else
{
    a = UnitType
}
Run Code Online (Sandbox Code Playgroud)

三元运算符

a = UnitType == null ? ElevationType : UnitType;
Run Code Online (Sandbox Code Playgroud)

现在我想要这样的东西

if(UnitType == null)
{
   if(ElevationType == null)
   {
    a = StructureType
   }
   else{
    a = ElevationType
   }
}
else
{
    a = UnitType
}
Run Code Online (Sandbox Code Playgroud)

我可以使用三元运算符实现这一目标吗?如果没有,该怎么办?

Ann*_* L. 9

a = (UnitType == null) ? (ElevationType ?? StructureType) : UnitType;
Run Code Online (Sandbox Code Playgroud)

但我支持我的评论:这比if-else更难理解.

或者,可能,

a = UnitType ?? ElevationType ?? StructureType;
Run Code Online (Sandbox Code Playgroud)

如果您熟悉??操作员,这是相当清楚的.

  • @zariakhan [这里你去](https://msdn.microsoft.com/en-us/library/ms173224.aspx) - 或者如果你不想读它,在这种情况下,a等于`UnitType `除非它为null,在这种情况下它取'ElevationType`的值,除非它也是null,在这种情况下它最终取值`StructureType` (3认同)
  • @AnnL.这个`a = UnitType ?? ElevationType ?? StructureType;`非常酷!:d (2认同)