来自§1.6.6.4C#4.0规范的虚拟,覆盖和抽象方法(您引用的是旧版本):
可以在派生类中重写虚方法.当实例方法声明包含
override修饰符时,该方法将覆盖具有相同签名的继承虚拟方法.虚拟方法声明引入了新方法,而覆盖方法声明通过提供该方法的新实现来专门化现有的继承虚拟方法.
因此,当你编写一个override方法时,你实际上并没有创建一个新方法,而只是覆盖了一个方法.那个必须是virtual,所以你实际调用的方法是虚拟的.
话虽如此,有些情况下可以内联虚拟方法:如果有问题的对象的编译时类型是sealed,那么毫无疑问要执行什么代码.(我相信.Net实际上并没有使用这种优化.)
但在其他情况下,无法内联虚拟方法.
| 归档时间: |
|
| 查看次数: |
195 次 |
| 最近记录: |