使用三元运算符

时间:2014-05-09 14:01:56

标签: c# c#-4.0

下面是简单的三元运算符。

 hc.colspan= ( hc.colspan == 1 && hierarchycount == 0) ? hc.colspan : hc.colspan +1 

当条件为真时,我需要使这更简单,而不是将相同的值赋给hc.colspan。

如果条件为真,如何在不为hc.colspan指定相同值的情况下执行此操作。

考虑另一个例子

a = a!=0 ? a : b

上面我们将相同的值分配给" a"当条件成真时再次。但我不想再分配它。我怎么能以不同的方式做到这一点?

3 个答案:

答案 0 :(得分:2)

您必须删除三元运算符并使用正常的if语句:

if(!(hc.colspan == 1 && hierarchycount == 0)){
    hc.colspan += 1;
}

或者,根据MarkO的建议反过来:

if(hc.colspan != 1 || hierarchycount != 0){
    hc.colspan += 1;
}

答案 1 :(得分:1)

为什么不简单

if(!(hc.colspan == 1 && hierarchycount == 0))
     hc.colspan++;

答案 2 :(得分:0)

对于你的第一个例子,你可以这样做:

hc.colspan += (hc.colspan == 1 && hierarchycount == 0) ? 0 : 1;

但通常情况下,如果您只想在一种情况下更改值,只需使用if子句。

相关问题