字面值

  在前面的示例中,有两个字面值的示例:整数(17)和字符串("\"myInteger\" is")。其他变量类型也有相关的字面值,如表 3-4 所示。其中有许多涉及后缀,即在字面值的后面添加一些字符,来指定想要的类型。一些字面值有多种类型,在编译时由编译器根据它们的上下文确定其类型(同样 见表 3-4

类型 类别 后缀 示例/允许的值
bool 布尔 truefalse
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

 &emsp 表 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 值,表示字符串变量不引用字符串(或其他任何东西)。

🔚