C# 三元 (?:) 运算符

三元 运算符 是 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 语句。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战