繁体   English   中英

虚拟方法如何在C#中工作?

[英]How do virtual methods work in C#?

我知道在C ++中有vpointer和vtable。 虚函数表是类中虚拟方法的方法指针列表。 类的每个实例都有一个指向表的指针,当我们从实例调用虚方法时使用该指针。

我想知道它是如何在C#中实现的。 据我所知,虚拟表的概念是相同的。 但是,使用GetType()代替vpointer。

我会尽可能多地了解细节。 谢谢。

Vtables是C ++中的一种可能方法,它们不是 C ++标准的强制要求。 .NET使用的方法明显符合CLI和C#的已发布标准,但未指定实现细节(并且可能会更改)。

您可以从接口,覆盖成员和“新”成员的工作方式推断出一些细节。

你为什么想知道这个? 如果您遇到特定问题,则说明问题将允许其他人直接解决问题。

看看他们在C#规范中的文档: 10.5.3虚拟方法 (尽管规范不是实现)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM