文档详情

c#关键字详解.docx

发布:2016-12-06约13.03万字共188页下载文档
文本预览下载声明
C# 关键字 请参见 发送反馈意见 关键字是对编译器具有特殊意义的预定义保留标识符。它们不能在程序中用作标识符,除非它们有一个 @ 前缀。例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字。本主题中的第一个表列出的关键字在 C# 程序的任何部分都是保留标识符。本主题中的第二个表列出了 C# 中的上下文关键字。上下文关键字仅在受限制的程序上下文中具有特殊含义,并且可在该上下文外部用作标识符。通常,在将新关键字添加到 C# 语言的同时,也会将它们添加为上下文关键字,以便避免破坏用该语言的早期版本编写的程序。( 摘自MSDN共92个关键字 ) abstract 修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用 abstract 修饰符以指示某个类只能是其他类的基类。标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。抽象类具有以下特性:抽象类不能实例化。抽象类可以包含抽象方法和抽象访问器。不能用 sealed(C# 参考)修饰符修改抽象类,这意味着抽象类不能被继承。从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实实现。在方法或属性声明中使用 abstract 修饰符以指示方法或属性不包含实现。抽象方法具有以下特性:抽象方法是隐式的虚方法。只允许在抽象类中使用抽象方法声明。因为抽象方法声明不提供实际的实现,所以没有方法体;方法声明只是以一个分号结束,并且在签名后没有大括号 ({ })。例如: 复制代码 public abstract void MyMethod(); 实现由一个重写方法override(C# 参考)提供,此重写方法是非抽象类的一个成员。在抽象方法声明中使用 static 或 virtual 修饰符是错误的。除了在声明和调用语法上不同外,抽象属性的行为与抽象方法一样。在静态属性上使用 abstract 修饰符是错误的。在派生类中,通过包括使用 override 修饰符的属性声明,可以重写抽象的继承属性。抽象类必须为所有接口成员提供实现。实现接口的抽象类可以将接口方法映射到抽象方法上。例如: 复制代码 interface I { void M();}abstract class C: I { public abstract void M();} 示例在本例中,DerivedClass 类是从抽象类 BaseClass 派生的。抽象类包含一个抽象方法 AbstractMethod 和两个抽象属性 X 和 Y。 复制代码 // abstract_keyword.cs// Abstract Classesusing System;abstract class BaseClass // Abstract class{ protected int _x = 100; protected int _y = 150; public abstract void AbstractMethod(); // Abstract method public abstract int X { get; } public abstract int Y { get; }}class DerivedClass : BaseClass{ public override void AbstractMethod() { _x++; _y++; } public override int X // overriding property { get { return _x + 10; } } public override int Y // overriding property { get { return _y + 10; } } static void Main() { DerivedClass o = new DerivedClass(); o.AbstractMethod(); Console.WriteLine(x = {0}, y = {1}, o.X, o.Y); }} 复制代码 x = 111, y = 161 注释在上面的示例中,如果试图通过使用下面的语句将抽象类实例化: 复制代码 BaseClass bc = new BaseClass(); // Error 将出现错误,指出编译器无法创建抽象类“BaseClass”event 关键字用于在发行者类中声明事件。备注下面的示例演示如何声明和引发将 EventHandler 用作基础委托类型的事件。有关演示如何使用泛型 EventHandler(Of (TEventArgs)) 委托类型、如何订阅事件以及如何创建事件处理程序方法的完整代码示例,请参见如何:发布符合 .NET Framework 准
显示全部
相似文档