如果我要编写这段代码,它可以正常使用' if-else'布局。
if(isOn)
{
i = 10;
}
else
{
i = 20;
}
虽然我不确定如何使用三元运算符
转换它 isOn = true ? i = 1 : i = 0;
错误:无法确定条件表达式的类型,因为 在' void'之间没有隐含的转换。和'无效'。
编辑:
答案= i = isOn ? 10 : 20;
是否可以使用方法执行此操作?
if(isOn)
{
foo();
}
else
{
bar();
}
答案 0 :(得分:12)
答案 1 :(得分:5)
你可以试试这个:
i = isOn? 10:20
MSDN说:
条件必须评估为真或假。如果条件为真, 评估 first_expression 并成为结果。如果条件是 false, second_expression 将被评估并成为结果。只有一个 评估两个表达式。
修改: - 强>
如果要在条件运算符中调用void
方法,则可以使用委托,否则无法对方法使用三元运算符。
如果你的方法正在返回一些东西,那么试试这样:
i = isOn ? foo() : bar(); //assuming both methods return int
答案 2 :(得分:4)
你在正确的轨道上走了一段路。
i = isOn ? 10 : 20;
10
如果i
isOn == true
,20
将分配到i
isOn == false
答案 3 :(得分:2)
尝试以下
i = isOn ? 10 :20
答案 4 :(得分:2)
尝试以下方法:
i = isOn ? 10 : 20
答案 5 :(得分:2)
这是一个可能有帮助的解释。您正在寻找的陈述是:
i = isOn ? 10 : 20;
这就是意思:
(result) = (test) ? (value if test is true) : (value if test is false);
答案 6 :(得分:-3)
你需要:
i = true ? 10 : 20;
true
是你的条件。