如果表单不起作用,则短

Bes*_*ves -4 c# if-statement short

(myCondition!="true")
    ? output("false"); doSomethingElse();
    : output("true")
Run Code Online (Sandbox Code Playgroud)

为什么IDE会在双点"预期的分号"中说出来?

Jon*_*eet 9

条件运算符不是"short if form"...它是一个运算符,它根据第一个操作数的计算值来计算第三个操作数或第二个操作数.整个表达式的结果是任何操作数被评估的结果(在第2个/第3个之外),在必要时转换为结果类型(第2和第3个操作数必须是相同类型,或者必须有隐式转换为一个).

您不能将它用作单独的语句,并且您当然不能将多个语句用作操作数.请注意,它必须评估的值-如果OutputDoSomethingElsevoid方法,这就是另一个理由,为什么你不能使用条件运算符.

只是不要这样做.如果需要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();
}
Run Code Online (Sandbox Code Playgroud)

  • 也许值得注意的是,第一个和第二个表达式的类型必须相同,或者从一种类型到另一种类型必须存在隐式转换.操作符的整个目的是分配一个值,而不是根据某些条件来改变控制流,就像使用`if ... else`一样. (3认同)