C# 2005 类型体系包含下列几种类别:
· 值类型
· 引用类型
· 指针类型
值类型的变量存储数据,而引用类型的变量存储对实际数据的引用。引用类型也称为对象。指针类型仅可用于 unsafe 模式。
通过装箱和取消装箱,可以将值类型转换为引用类型,然后再转换回值类型。除了装箱值类型外,无法将引用类型转换为值类型。
本节还介绍 void 类型。
值类型也可以为空,这意味着它们能存储加法非值状态。有关更多信息,请参见可空类型。
修饰符用于修改类型和类型成员的声明。本节介绍 C# 2005 修饰符:
修饰符 | 用途 |
· public · private · internal | 指定声明的类型和类型成员的可访问性。 |
指示某个类只能是其他类的基类。 | |
指定无法修改字段或局部变量的值。 | |
声明事件。 | |
指示在外部实现方法。 | |
· new | 从基类成员隐藏继承的成员。 |
提供从基类继承的虚拟成员的新实现。 | |
在整个同一程序集中定义分部类和结构。 | |
声明一个字段,该字段只能赋值为该声明的一部分或者在同一个类的构造函数中。 | |
指定类不能被继承。 | |
声明属于类型本身而不是属于特定对象的成员。 | |
声明不安全的上下文。 | |
在派生类中声明其实现可由重写成员更改的方法或访问器。 | |
指示字段可由操作系统、硬件或并发执行线程等在程序中进行修改。 |
方法参数如果在为方法声明参数时未使用 ref 或 out,则该参数可以具有关联的值。可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值。通过使用方法参数关键字,可以更改这种行为。
本节描述声明方法参数时可以使用的关键字:
· params
· ref
· out
命名空间关键字本节描述与 using 命名空间关联的关键字和运算符:
· 命名空间
· using
· . 运算符
· :: 运算符
· 外部别名
运算符关键字用于执行杂项操作,例如创建对象,检查对象的运行时类型,获取类型的大小,等等。本节介绍下列关键字:
· as 将对象转换为可兼容类型。
· is 检查对象的运行时类型。
· new
o new 运算符 创建对象。
o new 修饰符 隐藏继承成员。
o new 约束 限定类型参数。
· sizeof 获取类型的大小。
· typeof 获取类型的 System.Type 对象。
· true
o true 运算符 返回布尔值 true 表示真,否则返回 false。
o true 表示布尔值 true。
· false
o false 运算符 返回布尔值 true 表示假,否则返回 false。
o false 表示布尔值 false。
· stackalloc 在堆栈上分配内存块。
在语句一节中介绍了下列可用作运算符和语句的关键字:
· checked 指定已检查的上下文。
· unchecked 指定未检查的上下文。
转换关键字本节描述在类型转换中使用的关键字:
· explicit
· implicit
· operator
本节介绍下列访问关键字:
· base
访问基类的成员。
· this
引用类的当前实例。
C# 2005 有下列文字关键字:
· null
· true
· false
· default
上下文关键字用于提供代码中的特定含义,但它不是 C# 2005 中的保留字。本节介绍下面这些上下文关键字:
get 为属性或索引器定义访问器方法。
partial 在整个同一编译单元内定义分部类、结构和接口。
set 为属性或索引器定义访问器方法。
where 向泛型声明中添加约束。
yield 在迭代器块中使用,用于向枚举数对象返回值或发信号结束迭代。
value 用于设置访问器和添加或移除事件处理程序。