3.2 关键字
C#共有77个关键字,如表3-1所示。原则上,关键字不可以用做标识符,但有一种情况例外,加上前导字符@就可以用作标识符了,例如:@abstract、@bool、@break等都是合法的标识符,但我们不推荐这样做。
这些关键字中,有些是用于类型声明的,比如abstract、static、class等;有些是C#语言本身的数据类型,比如bool、char、decimal、double等,这些数据类型对应于CTS中的类型;有些是负责程序流程控制的,比如if、else、switch等;还有一些是常数值,比如true、false等。在后面的章节中,将会对上述各关键字的用法和使用场合逐一详细讲解。
另外,还有一些标识符仅在某些上下文中才是关键字,称为“上下文关键字”,这类关键字在其他时候不是关键字[3]。上下文关键字的意义在于它能让语法更加简洁。其中,partial和where在多个不同的场合都具有特殊的含义,如表3-2所示。
举例说明,如代码清单3-2所示,第7行的Age是类IdentifierSample的一个属性[8](Property),它有两个访问器:setter和getter,分别提供对Age执行赋值和取值的功能,其中第9行和第10行就用到了get和set这两个上下文关键字。
代码清单3-2 上下文关键字的使用
1 using System;
2
3 namespace ProgrammingCSharp4
4{
5 class IdentifierSample
6{
7 public int Age
8{
9 get;
10 set;
11}
12
13 static void Main()
14{
15 string questionMessage="What's your name?";
16 string yourName;
17 Console.WriteLine(questionMessage);
18 yourName=Console.ReadLine();
19 Console.WriteLine("Your name is{0}",yourName);
20 Console.ReadKey();
21}
22}
23}
除此以外,C#中还有一些未公开的关键字,例如arglist、reftype、makeref、refvalue等,其中我们在第20.3节介绍了__arglist关键字,读者可以自行参考。
[1]用于泛型修饰符。
[2]用于泛型修饰符。
[3]此时你可以把它们用做标识符。
[4]用于类型。
[5]用于方法。
[6]用于泛型约束。
[7]用于查询子句。
[8]详细介绍请参考9.4.5节。