我知道在C ++中有vpointer和vtable。 虚函数表是类中虚拟方法的方法指针列表。 类的每个实例都有一个指向表的指针,当我们从实例调用虚方法时使用该指针。
我想知道这是如何在C#中实现的。据我所知,虚拟表的概念是相同的。但是,如果使用了Vpointer,则使用GetType()。
我会尽可能多地了解细节。 谢谢。
答案 0 :(得分:7)
Vtables是C ++中的一种可能方法,它们不受C ++标准规定的 。 .NET使用的方法明显符合CLI和C#的已发布标准,但未指定实现细节(并且可能会发生变化)。
您可以从接口,覆盖成员和“新”成员的工作方式推断出一些细节。
你为什么想知道这个?如果您遇到特定问题,那么说明问题将允许其他人直接解决问题。
答案 1 :(得分:1)
在C# spec:10.5.3 Virtual Methods中查看他们的文档(虽然它是规范而不是实现)。