目录
第06部分 类型修饰符
6.1 abstract
- 指示被修改内容的实现已丢失或不完整。表现为抽象。
- 抽象类是不可自身实例化的,抽象可以修饰类,方法,属性,索引器和事件。
6.1.1 抽象类功能
- 抽象类不能自身实例化,可接口的实现方式相似,使用里氏替换原则。其中可能包含方法和访问器,无法使用sealed修饰符来修改抽象类,派生自抽象类的非抽象类必须提供其父类所有抽象成员的实现。
- 抽象方法是隐式的虚拟方法,只有在抽象类中才可以使用,没有实际的方法体。
- 抽象方法的声明中不能使用static和virtual,且静态属性上不能使用abstract。
- 抽象子类可以用override abstract复写父类抽象,也可以override重写方法。
- 抽象类继承接口需要为接口提供实现的方法。
6.2 async
- 使用async修饰符将方法,lambda表达式,匿名方法指定为异步,参考异步编程
6.3 const
- 声明某个常量字段或常量局部变量。
- 不能修改,可以为数字,bool,字符串或null引用。
- 初始值设定项必须是可以隐式转换成目标类型的常量表达式。
- 一旦声明类型不能修改。
6.4 event
- event用于声明发布服务器类中的事件。
- 事件是一种特殊的多播委托,仅可以从声明事件的类或结构中对其进行调用,其他类或结构订阅该事件,则在发布服务器类引发该事件时,将调用其事件处理程序方法。
关键字与事件:
- static:使事件可供调用方在任何时候进行调用,即使没有类的实例的时候。
- virtual:允许在派生类重写该事件行为。
- sealed:指定对于派生类,不再是虚拟的。
- abstract:编译器不会生成add与remove事件访问器块,且必须在继承类中进行实现。
6.5 extern
- extern用于