上一篇(地址:https://www.vinanysoft.com/c-sharp-basics/data-types/fundamental-numeric-types/)只介绍了基本数值类型,本篇将介绍其他的一些类型: bool
、char
和 string
。
布尔类型(bool
)
bool
关键字是 System.Boolean
的别名。 它用于声明变量来存储布尔值:true
和 false
。
可将布尔值赋给 bool
变量。 也可以将计算结果为 bool
类型的表达式赋给 bool
变量。
public class BoolTest
{
static void Main()
{
bool b = true;
// WriteLine automatically converts the value of b to text.
Console.WriteLine(b);
int days = DateTime.Now.DayOfYear;
// Assign the result of a boolean expression to b.
b = (days % 2 == 0);
// Branch depending on whether b is true or false.
if (b)
{
Console.WriteLine("days is an even number");
}
else
{
Console.WriteLine("days is an odd number");
}
}
}
/* Output:
True
days is an <even/odd> number
*/
虽然理论上一个二进制位足以容纳一个布尔类型的值,但 bool
实际大小是一个字节。
字符类型(char
)
char
类型关键字是 System.Char
结构类型的别名,它表示 Unicode UTF-16
字符:
类型 | 范围 | 大小 | .NET 类型 |
---|---|---|---|
char | U+0000 到 U+FFFF | 16 位 | System.Char |
输入 char
字面量需要将字符放到一对单引号中,比如 'A'
。所有键盘字符都可这样输入,包括字母、数字以及特殊符号。
有的字符不能直接插入源代码,需进行特殊处理。首先输入反斜杠(\
)前缀,再跟随一个特殊字符代码。反斜杠和特殊字符代码统称为转义序列(escape sequence)。
例如,\n
代表换行符,而 \t
代表制表符。由于反斜杠标志转义序列开始,所以要用 \\
表示反斜杠字符。
Console.Write("\'"); //输出单引号(')
Console.Write("\\"); //输出反斜杠(\)
char
类型字面量可以输入字符、十六进制转义序列或 Unicode 表示形式。 也可以将整型字面量强制转换为相应的 char
值。 在下面的示例中,使用相同的字符 X
对 char
数组的四个元素进行初始化:
var chars = new char[4];
chars[0] = 'X'; // Character literal
chars[1] = '\x0058'; // Hexadecimal
chars[2] = (char)88; // Cast from integral type
chars[3] = '\u0058'; // Unicode
Console.Write(string.Join(" ", chars));
// Output: X X X X
下表列出了字符串转义序列:
转义序列 | 字符名称 | Unicode 编码 |
---|---|---|
\' |
单引号 | 0x0027 |
\" |
双引号 | 0x0022 |
\\ |
反斜杠 | 0x005C |
\0 |
null | 0x0000 |
\a |
警报 | 0x0007 |
\b |
退格 | 0x0008 |
\f |
换页 | 0x000C |
\n |
换行 | 0x000A |
\r |
回车 | 0x000D |
\t |
水平制表符 | 0x0009 |
\v |
垂直制表符 | 0x000B |
\u |
Unicode 转义序列 (UTF-16) | \uHHHH(范围:0000 - FFFF;示例:\u00E7 =“ç”) |
\U |
Unicode 转义序列 (UTF-32) | \U00HHHHHH(范围:000000 - 10FFFF;示例:\U0001F47D =“ |