不论你是新手还是老手,是否对C#的某些关键字有些摸不到头脑呢?现在我就和大家一起学习一下这些关键字的含义
类型
Void
用作方法的返回类型时,void 关键字指定方法不返回值。
在方法的参数列表中不允许使用 void。采用以下形式声明一个无参数的、不返回值的方法:
Ovid SampleMethod();
Var
在方法范围中声明的变量可以具有隐式类型 var。隐式类型的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型。 有返回值
引用类型
Class
类是使用关键字 class 声明的
委托
委托类型的声明与方法签名相似,有一个返回值和任意数目任意类型的参数:
public delegate void TestDelegate(string message);
public delegate int TestDelegate(MyType m, long num);
delegate 是一种可用于封装命名或匿名方法的引用类型。委托类似于 C++ 中的函数指针;但是,委托是类型安全和可靠的。
接口
接口只包含方法、属性、事件或索引器的签名。成员的实现是在实现接口的类或结构中完成的
Object
object 类型在 .NET Framework 中是 Object 的别名。在 C# 的统一类型系统中,所有类型(预定义类型、用户定义类型、引用类型和值类型)都是直接或间接从 Object 继承的。可以将任何类型的值赋给 object 类型的变量。将值类型的变量转换为对象的过程称为“装箱”。将对象类型的变量转换为值类型的过程称为“取消装箱”。
String
string 类型表示零或更多 Unicode 字符组成的序列。string 是 .NET Framework 中 String 的别名。
尽管 string 是引用类型,但定义相等运算符(== 和 !=)是为了比较 string 对象(而不是引用)的值。这使得对字符串相等性的测试更为直观。
修饰符
Override
要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用 override 修饰符。
Virtual
virtual 关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。例如,此方法可被任何继承它的类重写。
volatile
volatile 关键字指示一个字段可以由多个同时执行的线程修改。声明为 volatile 的字段不受编译器优化(假定由单个线程访问)的限制。这样可以确保该字段在任何时间呈现的都是最新的值。
unsafe
unsafe 关键字表示不安全上下文,该上下文是任何涉及指针的操作所必需的。
static
使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员。static 修饰符可用于类、字段、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类以外的类型。
sealed
当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承。在下面的示例中,类 B 从类 A 继承,但是任何类都不能从类 B 继承。
readonly
readonly 关键字是可以在字段上使用的修饰符。当字段声明包括 readonly 修饰符时,该声明引入的字段赋值只能作为声明的一部分出现,或者出现在同一类的构造函数中。
extern
extern 修饰符用于声明在外部实现的方法。extern 修饰符的常见用法是在使用 Interop 服务调入非托管代码时与 DllImport 属性一起使用。在这种情况下,还必须将方法声明为 static
event
event 关键字用于在发行者类中声明事件。
const
const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值是常数,不能被修改。
abstract
abstract 修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用 abstract 修饰符以指示某个类只能是其他类的基类。标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。
访问修饰符
internal
internal 关键字是类型和类型成员的访问修饰符。只有在同一程序集的文件中,内部类型或成员才是可访问的
private
private 关键字是一个成员访问修饰符。私有访问是允许的最低访问级别。私有成员只有在声明它们的类和结构体中才是可访问的
protected
protected 关键字是一个成员访问修饰符。受保护成员在其所在的类中可由派生类实例访问。
public
public 关键字是类型和类型成员的访问修饰符。公共访问是允许的最高访问级别。
abstract 可以和类、方法、属性、索引器及事件一起使用,
标识一个可以扩展但不能被实体化的、必须被实现的类或方法。
as 一个转换操作符,如果转换失败,就返回null。
base 用于访问被派生类或构造中的同名成员隐藏的基类成员。
catch 定义一个代码块,在特定类型异常抛出时,执行块内代码。
参见try和finally。
checked 既是操作符又是语句。
确保编译器运行时,检查整数类型操作或转换时出现的溢出。
const 标识一个可在编译时计算出来的变量值,即一经指派不可修改的值。
delegate 指定一个声明为一种委托类型。委托把方法封装为可调用实体,
能在委托实体中调用。
enum 表示一个已命名常量群集的值类型。
event 允许一个类或对象提供通知的成员,他必须是委托类型。