💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# C# 三元(`?:`)运算符 > 原文: [https://www.programiz.com/csharp-programming/ternary-operator](https://www.programiz.com/csharp-programming/ternary-operator) #### 在本文中,我们将学习 C# 三元运算符以及如何使用它来控制程序流。 三元[运算符](/csharp-programming/operators "C# Operators")替代`if...else`语句。 因此,在继续学习本教程之前,请先通过 [C# `if...else`语句](/csharp-programming/if-else-statement "C# if...else statement")(如果尚未这样做)。 三元运算符的语法为: ```cs Condition ? Expression1 : Expression2; ``` 三元运算符的工作方式如下: * 如果`Condition`表示的表达式为`true`,则`Expression1`的结果由三元运算符返回。 * 如果为`false`,则返回`Expression2`的结果。 例如,我们可以替换以下代码 ```cs if (number % 2 == 0) { isEven = true; } else { isEven = false; } ``` 与 ```cs isEven = (number % 2 == 0) ? true : false ; ``` **为什么叫三元运算符?** 该运算符采用 3 个**操作数**,因此称为三元运算符。 * * * ## 示例 1:C# 三元运算符 ```cs 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); } } } ``` 当我们运行程序时,输出将是: ```cs True ``` 在上述程序中,`2`被分配给变量`number`。 然后,使用三元运算符检查`number`是否为偶数。 由于 2 是偶数,因此表达式(`number % 2 == 0`)返回`true`。 我们还可以使用三元运算符返回数字,字符串和字符。 代替将返回值存储在变量`isEven`中,我们可以直接将三元运算符返回的值打印为: ```cs Console.WriteLine((number % 2 == 0) ? true : false); ``` * * * ## 什么时候使用三元运算符? 三元运算符可用于用单行替换多行代码。 但是,我们不应过度使用它。 例如,我们可以替换以下`if..else if`代码 ```cs 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"; } ``` 只需一行代码 ```cs result = a > b ? "a is greater than b" : a < b ? "b is greater than a" : "a is equal to b"; ``` 如我们所见,使用三元运算符可以减少代码的长度,但是这使我们难以理解代码的逻辑。 因此,最好只使用三元运算符替换简单的`if`语句。