C#条件运算符简介

开发 后端
C#条件运算符是什么呢?有什么特点呢?使用的时候是什么情况呢?

C#条件运算符是指什么呢?让我们首先从概念上了解C#条件运算符:

?: 运算符称为条件运算符。有时,它也称为三元运算符。

conditional-expression:(条件表达式:)

conditional-or-expression(条件或表达式)

conditional-or-expression   ?   expression   :   expression(条件或表达式   ?   表达式   :   表达式)

C#条件运算符的使用是如何的呢?

b ? x : y 形式的条件表达式首先计算条件 b。然后,如果 b 为 true,则计算 x,并且它成为运算结果。否则计算 y,并且它成为运算结果。条件表达式从不同时计算 x 和 y。

条件运算符向右关联,表示运算从右到左分组。例如,a ? b : c ? d : e 形式的表达式按 a ? b : (c ? d : e) 计算。

?: 运算符的***个操作数必须是可以隐式转换为 bool 的类型的表达式,或者是实现 operator true 的类型的表达式。如果两个要求都不满足,则发生编译时错误。

?: 运算符的第二个和第三个操作数决定了条件表达式的类型。设 X 和 Y 为第二个和第三个操作数所属的类型。然后,

如果 X 和 Y 的类型相同,则此类型为该条件表达式的类型。

否则,如果存在从 X 到 Y 的隐式转换,但不存在从 Y 到 X 的隐式转换,则 Y 为条件表达式的类型。

否则,如果存在从 Y 到 X 的隐式转换,但不存在从 X 到 Y 的隐式转换,则 X 为条件表达式的类型。

否则,无法确定条件表达式的类型,且发生编译时错误。

C#条件运算符使用中遇到的问题是什么呢? 

b ? x : y 形式的条件表达式的运行时处理包括以下步骤:

首先计算 b,并确定 b 的 bool 值:

如果存在从 b 的类型到 bool 的隐式转换,则执行该隐式转换以产生 bool 值。

否则,调用 b 的类型中定义的 operator true 以产生 bool 值。

如果以上步骤产生的 bool 值为 true,则计算 x 并将其转换为条件表达式的类型,且这成为条件表达式的结果。

否则,计算 y 并将其转换为条件表达式的类型,且这成为条件表达式的结果。

C#条件运算符的基本情况就向你介绍到这里,希望对你了解C#条件运算符有所帮助。

【编辑推荐】

  1. C#运算符重载的一些总结
  2. C#运算符重载“>”的操作浅析
  3. C#运算符优先级介绍
  4. C#关系运算符简介
  5. C#逻辑运算符简介
责任编辑:仲衡 来源: 百度空间
相关推荐

2009-08-12 14:49:33

C#移位运算符

2009-08-12 13:35:22

C#关系运算符

2009-08-12 14:23:09

C#逻辑运算符

2009-08-11 15:51:08

C#运算符算术运算符

2009-08-12 09:30:10

C#??运算符

2009-08-12 15:20:18

C#赋值运算符复合赋值运算符

2009-08-12 15:02:49

C#赋值运算符简单赋值运算符

2009-09-01 10:08:57

C#运算符

2009-08-11 14:16:38

C# New运算符

2009-08-12 10:47:03

C#运算符重载

2009-09-04 13:18:10

C#允许运算符重载

2009-08-12 10:56:47

C#运算符重载C#运算符重载实例

2009-08-12 10:07:51

C#运算符

2009-08-12 10:27:12

C#运算符重载运算符重载实例

2009-08-14 10:16:57

C#运算符重载

2009-08-12 13:07:13

C#运算符优先级

2009-08-11 16:03:13

C#运算符

2009-08-12 12:46:11

C#运算符重载

2009-08-12 10:20:52

C#位运算符

2009-08-12 10:37:13

C#运算符重载
点赞
收藏

51CTO技术栈公众号