C#中的条件运算符是一种特殊的运算符,它可以根据条件判断的真假来决定表达式的值。C#中有三个条件运算符:“?:”(三元运算符)、“&&”(逻辑与)和“||”(逻辑或)。
三元运算符是C#中最常用的条件运算符。它由三个操作数和一个问号构成。它的语法如下所示:
condition ? first_expression : second_expression;
如果 condition 为 true ,则表达式的值为 first_expression 的值;如果 condition 为 false ,则表达式的值为 second_expression 的值。例如:
int x = (age > 18) ? 1 : 0;
上面代码中 age > 18 是一个布尔表达式。如果 age 大于 18 ,则 x 的值将是 1 ;否则 x 的值将是 0 。
逻辑与运算符 && 具有优先于 || 运算的特性。它由左向右执行并在遇到 false 时立即停止执行。例如:
(age > 18) && (name == "John")
上面代码中 age > 18 和 name == "John" 都是布尔表达式。当 age > 18 为 true 时 && 运算会再去评估 name == "John" 表达式;而当 age > 18 为 false 时 && 运算就不会再去评估 name == "John" 表达式了。因此 && 运算可以避免不必要的评估而减少性能损失。
逻辑或运算 || 具有优先于 && 运行的特性。它由左向右执行并在遇到 true 时立即停止执行。例如:
(age < 10) || (name == "John")
上面代码中 age < 10 和 name == "John" 都是布尔表达式。当 age < 10 为 false 时 || 运
&&
和||
运算符测试与和或条件。
!
运算符表示不。
以下代码使用and,not和or运算符创建布尔表达式。
!cloudy && (WeekDay || ThanksGiving);
&&和||运算符尽可能短路计算。
在前面的示例中,如果它是多云,表达式(WeekDay ||感谢Giving)甚至不计算。
短路允许以下表达式运行而不抛出NullReferenceException
:
if (reference != null && reference.Length > 0) ...
&
和 |
运算符也测试与
和或
条件:
return !cloudy & (WeekDay | ThanksGiving);
&
和 |
运算符不会短路。
条件运算符的形式为q? a:b,其中如果条件q为真,则计算a,否则计算b。例如:
static int Max (int a, int b) {
return (a > b) ? a : b;
}
C# if switchif语句语法对于使用过程语言进行任何编程的任何人都应该是非常直观的:if (condition)statement(s) elsestatement(s...
C# 预处理器指令预处理器指令为编译器提供有关代码区域的附加信息。最常见的预处理器指令是条件指令。例子:#define DEBUGclass ...
C# 匿名类型匿名类型是由编译器在运行时创建的一个类,用于存储一组值。要创建匿名类型,请使用 new 关键字,后跟对象初始值设定...
C# 动态绑定动态绑定会将类型,成员和操作的解析过程从编译时延迟到运行时。使用上下文关键字 dynamic 声明动态类型:dynamic d =...