关键字是对编译器具有特殊意义的预定义保留标识符。它们不能在程序中用作标识符,除非它们有一个 @ 前缀。例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字。
下面是列出的所有的关键字在 C# 程序的任何部分都是保留标识符:
abstract | as | base | bool |
---|---|---|---|
break | byte | case | catch |
char | checked | class | const |
continue | decimal | default | delegate |
do | double | else | enum |
event | explicit | extern | False |
finally | static | float | for |
foreach | goto | if | implicit |
in | in(泛型修饰符) | int | interface |
internal | is | lock | long |
namespace | new | null | object |
operator | out | out(泛型修饰符) | override |
params | private | protected | public |
readonly | ref | return | sbyte |
sealed | short | sizeof | stackalloc |
static | string | struct | switch |
this | throw | True | try |
typeof | uint | ulong | unchecked |
unsafe | ushort | using | virtual |
void | volatile | while |
修饰符用于修改类型和类型成员的声明。 本节介绍 C# 修饰符:
修饰符 | 用途 |
---|---|
访问修饰符 public private internal protected | 指定声明的类型和类型成员的可访问性。 Public:类型与类型成员的访问修饰符,公共访问是允许访问的最高级别 Private:私有访问是允许访问的最低级别,只能在声明它们的类或结构体中访问 Internal:只有在同一程序集中才可以访问 Protected:受保护成员可在其所在的类与派生类访问 |
abstract | 在类中使用adstract指示某个类只能是其他类的基类。不可被实例化,用途是派生出其他非抽象类.当从抽象类派生非抽象类时,这些非抽象类必须具体实现所继承的所有抽象成员,从而重写那些抽象成员(对抽象方法的重写必用override,虚方法的关键字virtual,对虚方法的重写也要用override)。 |
const | 指定无法修改字段或局部变量的值。声明常量的关键字 |
event | 声明事件。常与委托(delegate)一起使用 |
extern | 指示在外部实现方法。 |
new | New 运算符:用于创建对象和调用构造函数。 New 修饰符:用于向基类成员隐藏继承成员。 |
override | 要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用 override 修饰符。 |
partial | 在整个同一程序集中定义分部类、结构和方法。分部类型定义允许将类、结构或接口的定义拆分到多个文件中。 |
readonly | 声明一个字段,该字段只能赋值为该声明的一部分或者在同一个类的构造函数中。 |
sealed | 指定类不能被继承。密封类关键字,密封类不能被继承(不想让其它类继承可以声明为密封类) |
static | 静态成员的关键字,静态成员可以直接通过类来调用(在动静态调用都可以),动态成员必需通过对象来调用 |
unsafe | 声明不安全的上下文。Unsafe static void test(){} Unsafe{ } |
virtual | 虚方法的关键字,不含方法实现,用override对其实现,不含startic(多用于多态性) |
volatile | volatile 关键字指示一个字段可以由多个同时执行的线程修改。 声明为 volatile 的字段不受编译器优化(假定由单个线程访问)的限制。 这样可以确保该字段在任何时间呈现的都是最新的值。 volatile 修饰符通常用于由多个线程访问但不使用 lock 语句对访问进行序列化的字段。 |
指定声明的类型和类型成员的可访问性。 Public:类型与类型成员的访问修饰符,公共访问是允许访问的最高级别 Private:私有访问是允许访问的最低级别,只能在声明它们的类或结构体中访问 Internal:只有在同一程序集中才可以访问 Protected:受保护成员可在其所在的类与派生类访问 abstract 在类中使用adstract指示某个类只能是其他类的基类。不可被实例化,用途是派生出其他非抽象类.当从抽象类派生非抽象类时,这些非抽象类必须具体实现所继承的所有抽象成员,从而重写那些抽象成员(对抽象方法的重写必用override,虚方法的关键字virtual,对虚方法的重写也要用override)。 const 指定无法修改字段或局部变量的值。声明常量的关键字 event 声明事件。常与委托(delegate)一起使用 extern 指示在外部实现方法。 new New 运算符:用于创建对象和调用构造函数。 New 修饰符:用于向基类成员隐藏继承成员。 override 要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用 override 修饰符。 partial 在整个同一程序集中定义分部类、结构和方法。分部类型定义允许将类、结构或接口的定义拆分到多个文件中。 readonly 声明一个字段,该字段只能赋值为该声明的一部分或者在同一个类的构造函数中。 sealed 指定类不能被继承。密封类关键字,密封类不能被继承(不想让其它类继承可以声明为密封类) static 静态成员的关键字,静态成员可以直接通过类来调用(在动静态调用都可以),动态成员必需通过对象来调用 unsafe 声明不安全的上下文。Unsafe static void test(){} Unsafe{ } virtual 虚方法的关键字,不含方法实现,用override对其实现,不含startic(多用于多态性) volatile volatile 关键字指示一个字段可以由多个同时执行的线程修改。 声明为 volatile 的字段不受编译器优化(假定由单个线程访问)的限制。 这样可以确保该字段在任何时间呈现的都是最新的值。 volatile 修饰符通常用于由多个线程访问但不使用 lock 语句对访问进行序列化的字段。
语句是程序指令。 除了下表中引用的主题中介绍的以外,语句都是按照顺序执行的。 下表列出了 C# 语句关键字。 有关不用任何关键字表示的语句的更多信息,请参见语句(C# 编程指南)。
类别 | C# 关键字 |
---|---|
选择语句 | if, else, switch, case |
迭代语句 | do, for, foreach, in, while |
跳转语句 | break, continue, default, goto,return,yield |
异常处理语句 | throw, try-catch, try-finally, try-catch-finally |
检查和未检查 | checked, unchecked |
fixed 语句 | fixed |
lock 语句 | lock |
本节描述与 using 命名空间关联的关键字和运算符:
用于执行杂项操作,例如创建对象,检查对象的运行时类型,获取类型的大小,等等。 本节介绍下列关键字:
在语句一节中介绍了下列可用作运算符和语句的关键字:
本节描述在类型转换中使用的关键字:
本节介绍下列访问关键字:
访问基类的成员。
引用类的当前实例。
文字关键字(C# 参考)
上下文关键字用于提供代码中的特定含义,但它不是 C# 中的保留字。本节介绍下面这些上下文关键字:
关键字 | 说明 |
---|---|
add | 定义一个自定义事件访问器,客户端代码订阅事件时将调用该访问器。 |
dynamic | 定义一个引用类型,实现发生绕过编译时类型检查的操作。 |
get | 为属性或索引器定义访问器方法。 |
global | 指定未以其他方式命名的默认全局命名空间。 |
Partial — 部分 | 在整个同一编译单元内定义分部类、结构和接口。 |
remove | 定义一个自定义事件访问器,客户端代码取消订阅事件时将调用该访问器。 |
set | 为属性或索引器定义访问器方法。 |
value | 用于设置访问器和添加或移除事件处理程序。 |
var | 使编译器能够确定在方法作用域中声明的变量的类型。 |
where | 将约束添加到泛型声明。(另请参见where)。 |
yield | 在迭代器块中使用,用于向枚举数对象返回值或发信号结束迭代。 |
C# 3.0 中引入的所有查询关键字也都是上下文相关的。有关更多信息,
本节包含查询表达式中使用的上下文关键字。
本节内容
子句 | 说明 |
---|---|
from | 指定数据源和范围变量(类似于迭代变量)。 |
where | 根据一个或多个由逻辑“与”和逻辑“或”运算符(&& 或 ||)分隔的布尔表达式筛选源元素。 |
select | 指定当执行查询时返回的序列中的元素将具有的类型和形式。 |
group | 按照指定的键值对查询结果进行分组。 |
into | 提供一个标识符,它可以充当对 join、group 或 select 子句的结果的引用。 |
orderby | 基于元素类型的默认比较器按升序或降序对查询结果进行排序。 |
join | 基于两个指定匹配条件之间的相等比较来联接两个数据源。 |
let | 引入一个用于存储查询表达式中的子表达式结果的范围变量。 |
in | join 子句中的上下文关键字。 |
on | join 子句中的上下文关键字。 |
equals | join 子句中的上下文关键字。 |
by | group 子句中的上下文关键字。 |
ascending | orderby 子句中的上下文关键字。 |
descending | orderby 子句中的上下文关键字。 |