如何在内存中引用方法?

时间:2012-06-08 22:33:09

标签: c#

在C#中,我理解静态变量是在内存中创建的,只要AppDomain存在就会生效。如何在内存中处理静态方法?方法是否像堆栈一样在堆栈/堆上创建?方法GC有这样的东西吗?这与调用堆栈有什么关系呢?

2 个答案:

答案 0 :(得分:3)

方法既存在于代码段中,也不存在于堆或堆栈中。代码只是加载到内存中,只要AppDomain存在就会保留在那里。

静态方法和非虚方法只有一个地址,代码在调用方法时直接使用地址。

虚拟方法也有地址,但不直接使用。有一个指向虚方法表中与该类关联的方法的指针,因此代码从表中获取指针以找到该方法。

调用堆栈只是堆栈的另一个术语。

答案 1 :(得分:0)

方法不在堆上,它们是代码的一部分 - 静态或实例方法。