C# 关键字 keyword

关键字是预定义的保留标识符,对编译器有特殊意义。 除非前面有 @ 前缀,否则不能在程序中用作标识符。 例如,@if 是有效标识符,而 if 则不是,因为 if 是关键字。

访问修饰符 关键字 Access Modifier keyword

用于指定成员或类型已声明的可访问性。 本部分介绍四个访问修饰符:

访问修饰符 说明
public 关键字是类型和类型成员的访问修饰符。 公共访问是允许的最高访问级别。 对访问公共成员没有限制
private 私有访问是允许的最低访问级别。 私有成员只有在声明它们的类和结构体中才是可访问的 (没写的话默认也是私有)
protected 受保护成员在其所在的类中可由派生类实例访问
protected internal 类似于public但是受限在同一个程序集当中
private protected 只有自己类内部,或者派生类内部可访问。

修饰符 关键字 Modifier keyword

修饰符 说明
abstract 抽像 不能实例化的类,但是可能有实现了部分方法
async 异步
const 声明某个常量字段或常量局部变量
event 声明发布服务器类中的事件
extern extern 修饰符用于声明在外部实现的方法。 通常是调用C++写的非com的类库
new new 关键字可以显式隐藏从基类继承的成员.
override 扩展或修改继承的方法、属性、索引器或事件的抽象或虚拟实现需要 override 修饰符
partial 部分 类,可以把一个类 结构 接口 记录 放到多个文件里面去
readonly 只读 readonly 字段只能在构造器更改, readonly struct 构造类型不可变
sealed 应用于某个类时,sealed 修饰符可阻止其他类继承自该类. (微软自带类有一些不让人继承,有时候会给我们带来好多的麻烦)
static 静态类,静态方法, using static,静态构造函数
unsafe 关键字表示不安全上下文,该上下文是任何涉及指针的操作所必需的
virtual 用于修改方法、属性、索引器或事件声明,并使它们可以在派生类中被重写
volatile 用Volatile声明的变量就相当于告诉编译器,不要进行编译优化(假定由单个线程访问),从内存中读取数值。 (没有线程安全)
in 对于泛型类型参数,in 关键字可指定类型参数是逆变的。
out 对于泛型类型参数,out 关键字可指定类型参数是协变的。

语句 关键字 Statement keyword

关键字 类别 说明
if 选择语句
else 选择语句
switch 选择语句 语句包含一个或多个开关部分。 每个 switch 部分包含一个或多个 case 标签(case 或 default 标签),后接一个或多个语句。
case 选择语句
case when 选择语句 C# 7.0 开始,因为 case 语句不需要互相排斥,因此可以添加 when 子句来指定必须满足的附加条件使 case 语句计算为 true
do 迭代语句
for 迭代语句
foreach in 迭代语句
while 迭代语句
break 跳转语句 语句将终止其所在位置的最接近封闭循环或 switch 语句。 控制权将传递给已终止语句后面的语句(若有)
continue 跳转语句 语句将控制传递到其中出现的封闭 while、do、for 或 foreach 语句的下一次迭代
default 跳转语句 配合swith 用的,
goto 跳转语句 语句将程序控制直接传递给标记语句
return 跳转语句 语句可终止它所在的方法的执行,并将控制权返回给调用方法。 它还可以返回可选值。 如果方法是 void 类型,则 return 语句可以省略。
如果 return 语句位于 try 块中,则 finally 块(如果存在)会在控制权返回给调用方法之前进行执行。
yield 跳转语句
throw 异常处理语句 抛出程序执行期间出现异常的信号
try - catch 异常处理语句 包含一个后接一个或多个 catch 子句的 try 块,这些子句指定不同异常的处理程序
try - finally 异常处理语句 通过使用 finally 块,可以清除 try 块中分配的任何资源,即使在 try 块中未发生异常,该代码也会被执行.
checked checked 和 unchecked 用于对整型类型算术运算和转换显式启用溢出检查
unchecked checked 和 unchecked 用于取消整型类型的算术运算和转换的溢出检查。
fixed fixed 语句可防止垃圾回收器重新定位可移动的变量。 fixed 语句仅允许存在于不安全的上下文中
lock lock 获取给定对象的互斥锁

方法参数 关键字 Method Parameter keyword

关键字 说明
params 使用 params 关键字可以指定采用数目可变的参数的方法参数。 参数类型必须是一维数组。
ref 关键字指示按引用传递值,引用返回值,
out 它与 ref 关键字相似,只不过 ref 要求在传递之前初始化变量。
in 它类似于 ref 或 out 关键字,不同之处在于 in 参数无法通过调用的方法进行修改

命名空间关键字 Namespace keyword

关键字 说明
using 引入命名空间
using static 允许访问类型的静态成员和嵌套类型,为命名空间或类型创建别名
using Project = PC.MyCompany.Project;
提供可确保正确使用 IDisposable,IAsyncDisposable 对象的方便语法
extern alias 可能需要在同一应用程序中使用某程序集的两个或多个版本。 通过使用外部程序集别名,可在别名命名的根级别命名空间内包装每个程序集的命名空间,使其能够在同一文件中使用
:: operator 配合外部别名进行使用 using Class1V1 = GridV1::Namespace.Class1;

泛型约束 关键字 Generic type constraint keyword

关键字 说明
new new 约束指定泛型类声明中的类型实参必须有公共的无参数构造函数
where 定义类型约束 public class AGenericClass<T> where T : IComparable<T> { }, 有定义后,Visual studio就会有智能提示了

访问 关键字 Access keyword

关键字 说明
base 关键字用于从派生类中访问基类的成员
this 关键字指代类的当前实例,还可用作扩展方法的第一个参数的修饰符。

字面量 关键字 Literal keyword

关键字 说明
null null是引用类型的默认值
false 布尔类型 false
true 布尔类型 false
default 一个引用类型,或者值类型的默认值

上下文关键字 Contextual keyword

上下文关键字用于在代码中提供特定含义,但它不是 C# 中的保留字

关键字 说明
add 定义一个自定义事件访问器,客户端代码订阅事件时会调用该访问器。
and 创建在两个嵌套模式均匹配时匹配的模式。
async 指示修改后的方法、lambda 表达式或匿名方法是异步的。
await 挂起异步方法,直到等待的任务完成。
dynamic 定义一个引用类型,实现发生绕过编译时类型检查的操作。
get 为属性或索引器定义访问器方法。
global 未以其他方式命名的全局命名空间的别名。
init 为属性或索引器定义访问器方法。
nint 定义本机大小的整数数据类型。
not 创建在否定模式不匹配时匹配的模式。
nuint 定 义本机大小的无符号整数数据类型。
or 创建在任一嵌套模式匹配时匹配的模式。
partial 在整个同一编译单元内定义分部类、结构和接口。
record 用于定义记录类型。
remove 定义一个自定义事件访问器,客户端代码取消订阅事件时会调用该访问器。
set 为属性或索引器定义访问器方法。
value 用于设置访问器和添加或删除事件处理程序。
var 使编译器能够确定在方法作用域中声明的变量类型。
when 指定 catch 块的筛选条件或 switch 语句的 case 标签。
where 将约束添加到泛型声明。
yield 在迭代器块中使用,用于向枚举数对象返回值或用于表示迭代结束。

查询关键字 Query keyword

在查询表达式中使用的上下文关键字。 语言集成查询 (LINQ)

关键字 说明
from 指定数据源和范围变量(类似于迭代变量)。
where 基于由逻辑 AND 和 OR 运算符(&& 或 ||)分隔的一个或多个布尔表达式筛选源元素。
select 指定执行查询时,所返回序列中元素的类型和形状。
group 根据指定的密钥值对查询结果分组。
into 提供可作为对 join、group 或 select 子句结果引用的标识符。
orderby 根据元素类型的默认比较器对查询结果进行升序或降序排序。
join 基于两个指定匹配条件间的相等比较而联接两个数据源。
let 引入范围变量,在查询表达式中存储子表达式结果。
in join 子句中的上下文关键字。
on join 子句中的上下文关键字。
equals join 子句中的上下文关键字。
by group 子句中的上下文关键字。
ascending orderby 子句中的上下文关键字。
descending orderby 子句中的上下文关键字。

参考 https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/

下一篇:C# 类 class
最近更新的
...