C# 方法表是在堆栈还是堆中分配的?

C# 方法表是在堆栈还是堆中分配的?,c#,memory-management,clr,C#,Memory Management,Clr,我想知道CLR在哪里分配方法表。我们知道类对象引用保存在堆上,堆栈指向它们。而且,这个对象的方法引用分配在一个叫做“方法表”的地方 正如标题所暗示的,我想知道这个方法表是CLR在堆或完全不同的分配区域中管理的另一个对象。为什么它对您很重要?只是检查这是否是XY问题-。@mjwills我只是想知道它是如何工作的。@PranayRana我知道是的,但我指的是在内存中单独分区的某个地方。就像堆和栈一样。不。调用非虚拟方法时不使用vtable。事实上,在某些情况下,编译器可以确定在编译时调用的确切方法,

我想知道CLR在哪里分配方法表。我们知道类对象引用保存在堆上,堆栈指向它们。而且,这个对象的方法引用分配在一个叫做“方法表”的地方


正如标题所暗示的,我想知道这个方法表是CLR在堆或完全不同的分配区域中管理的另一个对象。

为什么它对您很重要?只是检查这是否是XY问题-。@mjwills我只是想知道它是如何工作的。@PranayRana我知道是的,但我指的是在内存中单独分区的某个地方。就像堆和栈一样。不。调用非虚拟方法时不使用vtable。事实上,在某些情况下,编译器可以确定在编译时调用的确切方法,甚至那些调用也会绕过vtable。关于vtable的存储位置,我仍然无法理解。CLR维护一堆内部堆,其中一个存储方法表。文献通常称之为“装载机堆”。