📜  C#三元(?:)运算符

📅  最后修改于: 2020-10-06 09:38:58             🧑  作者: Mango

在本文中,我们将学习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 。然后,使用三元运算符检查数字是否为偶数。

由于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语句。