没有返回值的条件运算符
本文关键字:条件运算符 返回值 | 更新日期: 2023-09-27 17:58:01
我有这个代码:
bool value = false;
if(value)
{
Console.Write("true");
}
else
{
Console.Write("false");
}
我想通过使用条件运算符来缩短它,但我找不到正确的语法。
bool value = false;
value ? Console.Write("true") : Console.Write("false"); // does not work
将操作员放入Console.Write
Console.Write(value ? "true" : "false");
或者如果你真的想写值:
Console.Write(value);
如果你想调用两种不同的方法,你可以用一行写if语句:
if (value) Method1(); else Method2();
bool value = false;
Console.Write(value ? "true" : "false");
若方法返回一个值,则
bool value = false;
var result = value ? Test1() : Test2();
private int Test1()
{
return 1;
}
private int Test2()
{
return 1;
}
只是在前面的答案上添加了一些精度。你不能这样做的原因:
value ? Console.Write("true") : Console.Write("false");
是因为:
条件运算符(?:)根据布尔表达式的值返回两个值之一。
来源:MSDN
这里的关键词是"return"。三元运算符并不完全替换if/else语句,它用于赋值。当然,您可以在三元运算中调用一个方法,只要它返回布尔值即可。三元运算符必须返回一些内容。