编程语言
349
在前面的示例中,有两个字面值的示例:整数(17)和字符串(""myInteger" is")。其他变量类型也有相关的字面值,如表 3-4 所示。其中有许多涉及后缀,即在字面值的后面添加一些字符,来指定想要的类型。一些字面值有多种类型,在编译时由编译器根据它们的上下文确定其类型(同样 见表 3-4)
| 类型 | 类别 | 后缀 | 示例/允许的值 |
|---|---|---|---|
| bool | 布尔 | 无 |
true 或 false
|
| int, uint, long, ulong | 整数 | 无 | 100 |
| uint, ulong | 整数 | u 或 U | 100U |
| long, ulong | 整数 | l 或 L | 100L |
| ulong | 整数 | ul、uL、UI、UL、lu、lU、Lu 或 LU | 100UL |
| float | 实数 | f 或 F | 1.5F |
| double | 实数 | 无、d 或 D | 1.5 |
| decimal | 实数 | m 或 M | 1.5M |
表3-4 字面值
字符串的字面值
本章前面介绍了几个可在字符串的字面值中使用的转义序列,表 3-5 是这些转义序列的完整列表,以便以后引用。
表3-5 字符串字面值的转义序列
| 转义序列 | 产生的字符 | 字符的 Unicode 值 |
|---|---|---|
| ' | 单引号 | 0x0027 |
| " | 双引号 | 0x0022 |
| \ | 反斜杠 | 0x005C |
| \0 | 空 | 0x0000 |
| \a | 警告(产生蜂鸣) | 0x0007 |
| \b | 退格 | 0x0008 |
| \f | 换页 | 0x000C |
| \n | 换行 | 0x000A |
| \r | 回车 | 0x000D |
| \t | 水平制表符 | 0x0009 |
| \v | 垂直制表符 | 0x000B |
表 3-5 中的“字符的 Unicode 值”列是字符在 Unicode 字符集中的 16 进制值。除了上面这些,还可以使用 Unicode 转义序列指定其他任何 Unicode 字符,该转义序列包括标准的 \ 字符,后跟一个 u 和一个 4 位十六进制值(例如,表 3-5 中 x 后面的 4 位数字)。
下面的字符串是等价的:
"Karli\'s string." "Karli\u0027s string."
显然,Unicode 转义序列还有更多用途。
也可以一字不变地指定字符串,即两个双引号之间的所有字符都包含在字符串中,包括行末字符和原本需要转义的字符。唯一的例外是必须指定双引号字符的转义序列,以免结束字符串。这种方法需要在字符串之前加一个 @ 字符:
@"Verbatim string literal."
也可以用普通方式指定这个字符串,但下面的字符串就必须使用 @ 字符:
@"A short list: item 1 item 2"
一字不变的字符串在文件中非常有用,因为文件名中大量使用了反斜杠字符。如果使用一般的字符串,就必须在字符串使用两个反斜杠,例如:
"C:\\Temp\\MyDir\\MyFile.doc"
从本书的后面可以看出,字符串是引用类型,而本章中的其他类型都是值类型。所以,字符串也可以被赋予
null值,表示字符串变量不引用字符串(或其他任何东西)。
广告