c# – 虚拟和覆盖在场景后面做了什么

栏目: C# · 发布时间: 6年前

内容简介:我刚刚了解Virtual和Override用于(我找不到这么长时间使用).我不能给你任何关于如何在IL中完成的见解,但基本理论很简单.当编译器看到虚拟方法声明时,不是将该方法附加到类中,而是将其添加到该类的vtable(虚方法表)中,该类保存指向函数的指针.

我刚刚了解Virtual和Override用于(我找不到这么长时间使用).

我不能给你任何关于如何在IL中完成的见解,但基本理论很简单.

当编译器看到虚拟方法声明时,不是将该方法附加到类中,而是将其添加到该类的vtable(虚方法表)中,该类保存指向函数的指针.

现在由于vtable是类的一部分,它由子类继承,因此虚拟方法也是继承的.现在是覆盖位.当编译器在方法声明中看到覆盖时,它会查找vtable,找到要覆盖的方法并更改函数指针,使其指向新的定义.

因此,您既可以从父类继承方法,也可以在子类中更改它们的定义.

有关更多信息,请参阅 Virtual Method Table 上的Wikipedia文章.

翻译自:https://stackoverflow.com/questions/1310312/what-does-virtual-and-override-do-behind-the-scene


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JSP网站开发四“酷”全书

JSP网站开发四“酷”全书

万峰科技 / 电子工业出版社 / 2005-9 / 49.00元

本书以JSP为开发语言,选取当前最流行、最具代表性的4类网站:新闻站点、论坛、电子商城和博客(Blog)系统为例,详细介绍了使用JSP开发网站的核心技术。掌握了本书所举4类网站的开发技术,将帮助你成为网站开发的“全能冠军”。 本书结合作者多年在网站系统开发方面的经验,从系统的需求分析开始,确定系统的流程与设计,到模块的划分,再到数据加结构的设计,最后开始每个模块编程开发,贯穿了网站开......一起来看看 《JSP网站开发四“酷”全书》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

SHA 加密
SHA 加密

SHA 加密工具