?: 运算符(C# 参考)
条件运算符 (?:) 根据Boolean 表达式的值返回两个值之一。 下面的是条件表达式的语法。
condition ? first_expression : second_expression;
备注
condition 必须计算到 true 或 false。 如果 condition 为 true,则评估 first_expression 并将成为结果。 如果 condition 为 false,则评估 second_expression 并将成为结果。 只计算两个表达式之一。
first_expression 和 second_expression 的类型必须相同,或者必须存在从一种类型到另一种类型的隐式转换。
可通过使用条件运算符表达可能更确切地要求 if-else 结构的计算。 例如,下面的代码首先使用 if 语句,然后在计算 sin 函数之前为可能的零分隔错误的检查条件运算符。
if(x != 0.0) s = Math.Sin(x)/x; else s = 1.0;
s = x != 0.0 ? Math.Sin(x)/x : 1.0;
条件运算符为右联运算符。 表达式 a ? b : c ? d : e 按照 a ? b : (c ? d : e) 而非 (a ? b : c) ? d : e 计算。
不能重载条件运算符。
示例
class ConditionalOp
{
static double sinc(double x)
{
return x != 0.0 ? Math.Sin(x) / x : 1.0;
}
static void Main()
{
Console.WriteLine(sinc(0.2));
Console.WriteLine(sinc(0.1));
Console.WriteLine(sinc(0.0));
}
}
/*
Output:
0.993346653975306
0.998334166468282
1
*/