购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.5 布尔类型和运算符

C#中的 bool System.Boolean 类型的别名)类型是能赋值为 true false 字面量的逻辑值。

尽管布尔类型的值仅需要1位的存储空间,但是运行时却使用了1字节内存空间。这是因为字节是运行时和处理器能够有效使用的最小单位。为避免在使用数组时的空间浪费,.NET在 System.Collections 命令空间下提供了 BitArray 类,其中每一个布尔值仅占用一位。

2.5.1 布尔类型转换

bool 类型不能转换为数值类型,反之亦然。

2.5.2 相等和比较运算符

== != 用于判断任意类型的相等与不等,并总是返回一个 bool 。值类型通常有很简单的相等定义:

对于引用类型,默认情况下相等是基于引用的,而不是基于底层对象的实际值(更多内容请参见第6章):

相等和比较运算符 == != < > >= <= 可用于所有的数值类型,但是用于实数时要特别注意(请参见2.4.9节)。比较运算符也可以用于枚举(enum)类型的成员,它比较的是表示枚举成员的整数值,我们将在3.7节中介绍。

我们将在4.17节、6.13节和6.14节中详细介绍相等和比较运算符。

2.5.3 条件运算符

&& || 运算符用于判断“与”和“或”条件。它们常常与代表“非”的 ! 运算符一起使用。在下面的例子中, UseUmbrella 方法在下雨或阳光充足(雨伞可以保护我们不会经受日晒雨淋),以及无风(因为雨伞在有风的时候不起作用)的时候返回 true

&& || 运算符会在可能的情况下执行短路计算。在上面的例子中,如果刮风, (rainy || sunny) 将不会计算。短路计算在某些表达式中是非常必要的,它可以允许如下表达式运行而不会抛出 NullReferenceException 异常:

&和|运算符也可用于判断“与”和“或”条件:

不同之处是&和|运算符不支持短路计算。因此,它们很少用于替代条件运算符。

与C和C++中的&和|运算符不同,C#的&和|运算符在用于布尔表达式时执行布尔比较(非短路计算),仅在作用于数值时才执行位运算。

(三元)条件运算符

三元条件运算符(由于它是唯一一个使用三个操作数的运算符,因此也简称为三元运算符)使用 q ? a : b 的形式。因此,它在 q 为真时计算 a ,否则计算 b

条件运算符在语言集成查询(Language-Integrated Query,LINQ)语句中的用处很大(参见第8章)。 aV2oT6eK7ARFzZ+7RAnrCjsRHvIPL/47SentGvrmEByHaeYwJayKOAT08JXvJvrA

点击中间区域
呼出菜单
上一章
目录
下一章
×