如果形式不起作用,则简短
本文关键字:不起作用 如果 | 更新日期: 2023-09-27 18:27:20
(myCondition!="true")
? output("false"); doSomethingElse();
: output("true")
为什么 IDE 在双点"预期分号"处显示?
条件运算符不是"短 if 形式"...它是一个运算符,它根据第一个操作数的计算来计算第三个操作数或第二个操作数。整个表达式的结果是计算的任何操作数的结果(从第 2/3 个操作数中(,在必要时转换为结果类型(第 2 个和第 3 个操作数必须属于同一类型,或者必须将一个操作数隐式转换为另一个操作数(。
您不能将其用作单个语句,当然也不能将多个语句用作操作数。请注意,它必须计算为一个值 - 如果Output
和DoSomethingElse
是void
方法,这是无法使用条件运算符的另一个原因。
只是不要这样做。当您需要if
语句的执行模型时,请使用if
语句。
// I generally try to make conditions positive where possible. It's easier to read IMO.
if (myCondition == "true")
{
Output("true");
}
else
{
Output("false");
DoSomethingElse();
}
这不是">
if"的一般替代品。相反,它通常用于在两个值之间进行选择;
var clothing = isRaining ? hat : sunglasses;
你正在做的事情最好用经典的 if 来表达;
if (myCondition!="true")
{
output("false");
doSomethingElse();
}
else
{
output("true")
}
您遇到的实际问题是您在第一个分支中包含两个语句;
output("false"); doSomethingElse();
在这种形式中,您只能有一个语句,并且它必须返回一个值。在 output("false") the language is expecting the
之后 :' 表示其他值;你给它一个分号,它变得混乱了。