我知道在C++中有vpointer和vtable。虚函数表是指向类中虚方法的方法指针列表。类的每个实例都有一个指向该表的指针,当我们从该实例调用一个虚方法时会使用该指针。
我想知道这是如何在C#中实现的。据我所知,虚拟表的概念是相同的。但是vpointer的用法是GetType()。
我会感激尽可能多的细节。谢谢。
发布于 2010-07-23 00:25:09
Vtable是C++中的一种可能的方法,它们不受C++标准的强制要求。.NET使用的方法显然符合已发布的CLI和C#标准,但没有指定实现细节(并且可能会发生变化)。
你可以从接口、被覆盖的成员和“新”成员的工作方式中推断出一些细节。
你为什么想知道这个?如果你有一个特定的问题,那么陈述这个问题将允许其他人直接解决这个问题。
发布于 2010-07-23 00:28:24
看看他们在C# spec:10.5.3 Virtual Methods中的文档(尽管它是规范而不是实现)。
https://stackoverflow.com/questions/3311012
复制相似问题