字面值

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

类型类别后缀示例/允许的值
bool布尔truefalse
int, uint, long, ulong整数100
uint, ulong整数u 或 U100U
long, ulong整数l 或 L100L
ulong整数ul、uL、UI、UL、lu、lU、Lu 或 LU100UL
float实数f 或 F1.5F
double实数无、d 或 D1.5
decimal实数m 或 M1.5M

表3-4 字面值

字符串的字面值

  本章前面介绍了几个可在字符串的字面值中使用的转义序列,表 3-5 是这些转义序列的完整列表,以便以后引用。

表3-5 字符串字面值的转义序列

转义序列产生的字符字符的 Unicode 值
\'单引号0x0027
\"双引号0x0022
\反斜杠0x005C
\00x0000
\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 位数字)。

  下面的字符串是等价的:

  1. "Karli\'s string."
  2. "Karli\u0027s string."

  显然,Unicode 转义序列还有更多用途。

  也可以一字不变地指定字符串,即两个双引号之间的所有字符都包含在字符串中,包括行末字符和原本需要转义的字符。唯一的例外是必须指定双引号字符的转义序列,以免结束字符串。这种方法需要在字符串之前加一个 @ 字符:

  1. @"Verbatim string literal."

  也可以用普通方式指定这个字符串,但下面的字符串就必须使用 @ 字符:

  1. @"A short list:
  2. item 1
  3. item 2"

  一字不变的字符串在文件中非常有用,因为文件名中大量使用了反斜杠字符。如果使用一般的字符串,就必须在字符串使用两个反斜杠,例如:

  1. "C:\\Temp\\MyDir\\MyFile.doc"
  从本书的后面可以看出,字符串是引用类型,而本章中的其他类型都是值类型。所以,字符串也可以被赋予 null 值,表示字符串变量不引用字符串(或其他任何东西)。