三元 运算符 是 if...else 语句的替代。因此,在继续本教程之前,请先学习 C# if...else 语句(如果您还没有学过)。
三元运算符的语法是
Condition ? Expression1 : Expression2;
三元运算符的工作原理如下:
- 如果
Condition所述的表达式为true,则三元运算符返回Expression1的结果。 - 如果为
false,则返回Expression2的结果。
例如,我们可以用以下代码替换:
if (number % 2 == 0)
{
isEven = true;
}
else
{
isEven = false;
}
替换为
isEven = (number % 2 == 0) ? true : false ;
为什么它被称为三元运算符?
该运算符接受 3 个操作数,因此称为三元运算符。
示例 1:C# 三元运算符
using System;
namespace Conditional
{
class Ternary
{
public static void Main(string[] args)
{
int number = 2;
bool isEven;
isEven = (number % 2 == 0) ? true : false ;
Console.WriteLine(isEven);
}
}
}
当我们运行程序时,输出将是:
True
在上面的程序中,将 2 分配给变量 number。然后,使用三元运算符检查 number 是否为偶数。
由于 2 是偶数,因此表达式 (number % 2 == 0) 返回 true。我们还可以使用三元运算符来返回数字、字符串和字符。
与其将返回值存储在变量 isEven 中,不如直接打印三元运算符返回的值,如下所示:
Console.WriteLine((number % 2 == 0) ? true : false);
何时使用三元运算符?
三元运算符可以用来用一行代码替换多行代码。但是,我们不应该过度使用它。
例如,我们可以用以下 if..else if 代码替换:
if (a > b)
{
result = "a is greater than b";
}
else if (a < b)
{
result = "b is greater than a";
}
else
{
result = "a is equal to b";
}
用一行代码替换
result = a > b ? "a is greater than b" : a < b ? "b is greater than a" : "a is equal to b";
正如我们所见,使用三元运算符可以缩短代码长度,但会增加我们理解代码逻辑的难度。
因此,最好仅使用三元运算符来替换简单的 if else 语句。