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

问题描述 投票:-3回答:4

嗨,我有一个类似的问题

bool isCompleted = true;

if(isCompleted){x= 5}

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

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

那么可以使用三元运算符而不使用返回或赋值吗?

谢谢。

c#
4个回答
2
投票

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

x = isCompleted ? 5: 0;

第二,您遇到类型错误。如果isCompleted = true,则上面将设置x = 5,否则将设置x = 0

isComplete ? 5 :false 

将无法编译,因为您无法将布尔值分配给一个整数。


2
投票

尝试像这样使用它:

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

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

如果要基于布尔条件执行某些代码逻辑,则可能需要在此处使用if...else,因为它不仅可以为变量分配一些值,还可以帮助您做更多的事情。

希望这会有所帮助。


1
投票

了解三元运算符的语法(MSDN):

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

因此您的代码必须重写为:

x = isCompleted ? 5 : 0;

0
投票

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

x = isCompleted吗? 5:x:

© www.soinside.com 2019 - 2024. All rights reserved.