值类型关键字
关键字 |
说明 |
关键字 |
说明 |
enum |
用于声明枚举 |
struct |
用于声明结构 |
char |
声明System.Char结构的字符,表示Unicode字符 |
decimal |
128位浮点类型,适合于财务和货币计算 |
float |
32位浮点值的简单类型 |
double |
64位浮点值的简单类型 |
byte |
无符号的8为整数,0到255 |
sbyte |
8位带符号整数,-128到127 |
int |
整型类型,带符号的32位整数 |
uint |
整型类型,无符号的32位整数 |
long |
带符号64为整数 |
ulong |
无符号64位整数 |
short |
有符号16位整数 |
ushort |
无符号16位整数 |
bool |
用于声明变量来存储true和false |
|
|
引用类型关键字
关键字 |
说明 |
关键字 |
说明 |
class |
声明类 |
delegate |
声明委托 |
dynamic |
绕过编译时类型检查,在运行时解析这些操作 |
interface |
声明接口 |
object |
是 .NET Framework 中 Object 的别名 |
string |
表示零个或多个Unicode字符,声明字符串 |
var:从 Visual C# 3.0 开始,在方法范围内声明的变量可以具有隐式“类型”var。 隐式类型本地变量为强类型,就像用户已经自行声明该类型,但编译器决定类型一样。 i 的以下两个声明在功能上是等效的:
var i = 10; // Implicitly typed.
int i = 10; // Explicitly typed.
void:当用作一种方法的返回类型时,void 将指定该方法不返回值。
修饰符关键字
访问修饰符
关键字 |
说明 |
关键字 |
说明 |
public |
访问不受限制 |
protected |
基类和派生类可以访问 |
internal |
当前程序集可以访问 |
protected internal |
当前程序集或集合和派生类中可以访问 |
private |
私有的,当前类来可以访问 |
private protected |
访问仅限于从当前程序集中的包含类派生的包含类 |
其他修饰符关键字
关键字 |
说明 |
abstract |
在类中使用adstract指示某个类只能是其他类的基类。不可被实例化,用途是派生出其他非抽象类.当从抽象类派生非抽象类时,这些非抽象类必须具体实现所继承的所有抽象成员,从而重写那些抽象成员(对抽象方法的重写必用override,虚方法的关键字virtual,对虚方法的重写也要用override)。 |
async |
可将方法、lambda表达式或匿名方法指定为异步 |
const |
声明常量 |
event |
声明事件。常和委托(delegate)一起使用 |
extern |
指示在外部实现的方法 |
in(泛型修饰符) |
对于泛型类型参数,in 关键字可指定类型参数是逆变的 |
out(泛型修饰符) |
对于泛型类型参数,out 关键字可指定类型参数是协变的 |
override |
扩展或修改继承的方法、属性、索引器或事件的抽象或虚拟实现需要 override 修饰符。 |
readonly |
在字段声明中,readonly 指示只能在声明期间或在同一个类的构造函数中向字段赋值。在 readonly struct 定义中,readonly 指示 struct 是不可变的。在 ref readonly 方法返回中,readonly 修饰符指示该方法返回一个引用,且不允许向该引用写入内容。 |
sealed |
应用于某个类时,sealed 修饰符可阻止其他类继承自该类 |
static |
使用 static 修饰符可声明属于类型本身而不是属于特定对象的静态成员 |
unsafe |
unsafe 关键字表示不安全上下文,该上下文是任何涉及指针的操作所必需的 |
virtual |
virtual 关键字用于修改方法、属性、索引器或事件声明,并使它们可以在派生类中被重写 |
volatile |
volatile 关键字指示一个字段可以由多个同时执行的线程修改 |
语句关键字
类型 |
说明 |
选择语句 |
if-else、switch-case |
迭代语句 |
do、for、foreach-in、while |
跳转语句 |
break、continue、goto、return |
异常处理 |
throw、try-catch、try-finally、try-catch-finally |
溢出检查 |
Checked、Unchecked |
fixed语句 |
fixed 语句可防止垃圾回收器重新定位可移动的变量。 fixed 语句仅允许存在于不安全的上下文中。 fixed 还可用于创建固定大小的缓冲区 |
lock语句 |
lock 关键字将语句块标记为关键部分,方法是获取给定对象的互斥锁,执行语句,然后释放该锁 |
方法参数关键字
关键字 |
说明 |
关键字 |
说明 |
params |
使用 params 关键字可以指定采用数目可变的参数的方法参数 |
in(参数修饰符) |
in 关键字通过引用传递参数。 它类似于 ref 或 out 关键字,不同之处在于 in 参数无法通过调用的方法进行修改 |
ref |
ref 关键字指示按引用传递的值。 它用在四种不同的上下文中:在方法签名和方法调用中,按引用将参数传递给方法。 在方法签名中,按引用将值返回给调用方。 在成员正文中,指示引用返回值是否作为调用方欲修改的引用被存储在本地,或在一般情况下,局部变量按引用访问另一个值。 在 struct 声明中声明 ref struct 或 ref readonly struct。 |
out(参数修饰符) |
out 关键字通过引用传递参数。 它与 ref 关键字相似,只不过 ref 要求在传递之前初始化变量。 它也类似于 in 关键字,只不过 in 不允许通过调用方法来修改参数值。 若要使用 out 参数,方法定义和调用方法均必须显式使用 out 关键字 |
命名空间关键字
关键字 |
说明 |
关键字 |
说明 |
namespace |
用于声明包含一组相关对象的作用域。可以是用命名空间来组织代码元素并创建全局唯一类型 |
using |
sing 关键字有两个主要用途:作为指令:用于为命名空间创建别名或导入在其他命名空间中定义的类型。作为语句:用于定义一个范围,在此范围的末尾将释放对象。此外,使用 using 静态指令可定义一种类型,在未指定类型名称的情况下即可访问该类型的静态成员。 |
extren |
使用外部程序集别名,可在别名命名的根级别命名空间内包装每个程序集的命名空间,使其能够在同一文件中使用 |
|
|
运算符关键字
关键字 |
说明 |
关键字 |
说明 |
as |
可以使用 as 运算符在符合的引用类型或可以为 null 的类型之间执行某些类型的转换 |
await |
await 运算符应用于异步方法中的任务,在方法的执行中插入挂起点,直到所等待的任务完成 |
is |
检查对象是否与给定类型兼容,或(从 C# 7.0 开始)针对某个模式测试表达式。 |
new |
用于创建对象和调用构造函数,用于隐藏基类成员,用于限制可能用作泛型声明中类型形式参数的实际参数的类型 |
sizeof |
用于获取非托管类型的大小(以字节为单位) |
typeof |
用于为类型获取 System.Type 对象 |
true |
用作重载运算符或文本 |
false |
用作重载运算符或文本 |
stackalloc |
在不安全代码上下文中使用 stackalloc 关键字在堆栈上分配内存块。 |
nameof |
用于获取变量、类型或成员的简单(非限定)字符串名称。 |
转换关键字
关键字 |
说明 |
关键字 |
说明 |
explicit |
explicit 关键字声明必须通过转换来调用的用户定义的类型转换运算符 |
implicit |
implicit 关键字用于声明隐式的用户定义类型转换运算符。 如果可以确保转换过程不会造成数据丢失,则可使用该关键字在用户定义类型和其他类型之间进行隐式转换。 |
operatior |
使用 operator 关键字重载内置运算符,或在类或结构声明中提供用户定义的转换。 |
|
|
访问关键字
关键字 |
说明 |
关键字 |
说明 |
base |
base 关键字用于从派生类中访问基类的成员:调用基类上已被其他方法重写的方法。指定创建派生类实例时应调用的基类构造函数。仅允许基类访问在构造函数、实例方法或实例属性访问器中进行。从静态方法中使用 base 关键字是错误的。 |
this |
this 关键字指代类的当前实例,还可用作扩展方法的第一个参数的修饰符。 |
文本关键字
关键字 |
说明 |
关键字 |
说明 |
default |
default 关键字可用于 switch 语句或默认值表达式中: |
null |
null 关键字是表示不引用任何对象的空引用的文字值。 null 是引用类型变量的默认值。 |
上下文关键字
关键字 |
说明 |
关键字 |
说明 |
add |
定义一个自定义事件访问器,客户端代码订阅事件时将调用改访问器 |
get |
为属性或索引器定义访问器方法 |
global |
指定未以其他方式命名的默认全局命名空间 |
partial(类型) |
在同一个编译单元定义部分类、结构和接口等 |
partial(方法) |
在同一个编译单元定义部分方法 |
remove |
定义一个自定义事件访问器,客户端代码取消订阅事件时将调用该访问器 |
set |
为属性或索引器定义访问器方法 |
when(筛选条件) |
在以下两个上下文中,可以使用上下文关键字 when 指定筛选条件:在 try/catch 或 try/catch/finally 块的 catch 语句中。在 switch 语句的 case 标签中。 |
where(泛型类型约束) |
将约束添加到泛型声明 |
value |
用于设置访问器和添加或移除事件处理程序 |
yield |
在迭代器块中使用,用于向枚举对象返回值或发送信号结束迭代 |
|
|
查询关键字
关键字 |
说明 |
关键字 |
说明 |
from子句 |
指定数据源和范围变量(类似于迭代变量) |
where子句 |
根据一个或多个由逻辑“与”和逻辑“或”运算符(&&或II)分隔的布尔表达式筛选源元素 |
select子句 |
指定当执行查询时返回的序列中的元素将具有的类型和形式 |
group子句 |
按照指定的键值对查询结果进行分组 |
into |
提供一个标识符,它可以充当对join、group或select子句的结果的引用 |
orderby子句 |
基于元素类型的默认比较器按升序或降序对查询结果进行排序 |
join子句 |
基于两个指定匹配条件之间的额相等比较来链接两个数据源 |
let子句 |
引入一个用于存储查询表达式中的子表达式结果的范围变量 |
ascending |
order by子句中的上下文关键字,按升序排序 |
descending |
order by子句中的上下文关键字,按降序排序 |
on |
join子句中的上下文关键字 |
equals |
join子句中的上下文关键字 |
by |
group子句中的上下文关键字 |
in |
join子句中的上下文关键字 |