使用三元运算符而不使用赋值或返回

时间:2015-04-17 09:26:53

标签: c#

嗨我有像

这样的问题
bool isCompleted = true;

if(isCompleted){x= 5}

所以我想使用三元运算符使用上面的代码而不使用返回或赋值

isCompleted ? int x = 5 : <do nothing>;

那么可以在不使用返回或赋值的情况下使用三元运算符吗?

感谢。

4 个答案:

答案 0 :(得分:2)

您需要在布尔值之前进行赋值。

x = isCompleted ? 5: 0;

其次,您有类型错误。如果isCompleted = true,则上面将设置x = 5,否则将设置x = 0

isComplete ? 5 :false 

将无法编译,因为您无法为int分配布尔值。

答案 1 :(得分:1)

阅读三元运算符的语法(MSDN):

  

条件运算符(?:) 返回两个值中的一个,具体取决于布尔表达式的值。

所以你的代码必须重写为:

x = isCompleted ? 5 : 0;

答案 2 :(得分:1)

尝试使用它:

x = isCompleted  ? intValue(if true) : intValue(if false);

由于您已将x声明为int,因此无论评估的条件如何,您都必须提供int中的值。您使用的任何其他类型值都不适用于此处。因此,你写的false是错误的。您可能希望在那里提供int值。

如果你想根据bool条件执行一些代码逻辑,你可能想在这里使用if...else,因为这样做不仅可以为变量分配一些值。

希望这有帮助。

答案 3 :(得分:0)

如果为true,则要将x设置为5。否则保持x值?

  

x = isCompleted? 5:x:

相关问题