声明
本文内容来自微软 MVP solenovex 的视频教程——真会C#吗?-- C#全面教程,大致和第 7 课—— 基础 - bool(入门) 对应。
本文主要包括以下内容:
- bool 和操作符
bool 和操作符
bool 关键字是 System.Boolean 的别名。 它用于声明变量来存储布尔值:true 和 false。
bool 特点
-
System.Boolean 的别名。
-
Literal:true,false。
-
只需要 1byte 内存(运行时和处理器可以高效操作的最小的块)。
-
针对数组,Framework 提供了 BitArray 类(System.Collections),在这里每个 bool 值只占用 1bit 内存。
转换
bool 类型无法和数值类型进行相互转换。
相等和比较操作符
-
== 和 != 操作符在用来比较相等性的时候,通常都会返回 bool 类型。
-
对于值类型(原始类型)来说,== 和 != 就是比较它们的值。
-
对于引用类型,默认情况下,是比较它们的引用。
-
数值类型都可以使用这些操作符:==,!=,<,>,<=,>=。实数比较需要注意精确度问题。
-
枚举类型(enum)也可以使用这些操作符,就是比较它们底层对应的整型数值。
// Value types
int x = 1;
int y = 2;
int z = 1;
Console.WriteLine (x == y); // False
Console.WriteLine (x == z); // True
// reference types
public class Dude
{
public string Name;
public Dude (string n) { Name = n; }
}
Dude d1 = new Dude ("John");
Dude d2 = new Dude ("John");
Console.WriteLine (d1 == d2); // False
Dude d3 = d1;
Console.WriteLine (d1 == d3); // True
&& 和 || 条件操作符
-
&& 和 || 可以用来判断“与”和“或”的条件。
-
&& 和 || 有短路机制。
-
&& 和 || 可避免 NullReferenceException。
static bool UseUmbrella (bool rainy, bool sunny, bool windy)
{
return !windy && (rainy || sunny);
}
// without throwing a NullReferenceException
if (sb != null && sb.Length > 0)
DoSomething();
& 和 | 条件操作符
-
& 和 | 也可以用来判断“与”和“或”的条件。
-
& 和 | 没有短路机制。
-
& 和 | 很少用来条件判断上。
-
当使用于数值的时候,& 和 | 执行的是按位操作。
return !windy & (rainy | sunny);
条件操作符(三元操作符)
- q ? a : b。
- 有三个操作数。
- 如果 q 为 true,那么就计算 a,否则计算 b。
static int Max (int a, int b)
{
return (a > b) ? a : b;
}
The truth tables.jpg
网友评论