![]() |
1
6
对,从语言的角度来看,它们不是虚拟的。但实际上,就CLR而言。此示例代码:
为Dispose()方法生成此IL:
注意方法的属性: 事实上的 和 最终的 . 最后一个是确保不能重写派生类中的方法。使接口方法实现在语言中的行为类似于非虚拟方法,但在运行时却是虚拟方法。 这也回答了您关于提前/延迟绑定的问题。现在还为时过早,当类被加载时,v-table槽被填充。 |