(以C#为例)方法在内存中是如何存储的? 10

我们都知道像普通的值类型变量是将变量的值存放在内存中的堆栈,变量指向存储地址,但是像一个对象的方法即不是具有具体值的变量,又没有什么实际的值,就是一些纯操作,它在内存中如... 我们都知道像普通的值类型变量是将变量的值存放在内存中的堆栈,变量指向存储地址,但是像一个对象的方法即不是具有具体值的变量,又没有什么实际的值,就是一些纯操作,它在内存中如何表示的呢? 展开
 我来答
司涵桃
2011-03-07 · TA获得超过419个赞
知道小有建树答主
回答量:559
采纳率:0%
帮助的人:128万
展开全部
个int属性会内联存在堆上,内联的意思就是对象的值类型属性直接存储在堆上,就是在堆上直接开一个32bit的空间.说到这好像也没太大区别,但是和对象的存储比较一下就清楚了.
如果有个对象的属性和一个值类型的属性:
classA
{
int v1;
classB v2;
}
那么实例化classA的对象时,v1那个位置直接存一个32位int数
v2那个地方存的是在堆上另一个对象的位置,相当于一个32位指针.

static类型是程序加载时就分配内存的.
普通类型是需要时才分配.
static类型是整个类公用的,所有该类的实例共享的都是同一个变量
另外不需要实例化一个类型,就可以以 类名.成员 的方式访问静态成员
yanshl
2011-03-07 · TA获得超过412个赞
知道小有建树答主
回答量:215
采纳率:0%
帮助的人:243万
展开全部
在.NET程序启动的时候,系统框架会自动根据所写的程序,将类创建在一个特定内存中。当创建该类的对象时,根据内存中的类模板,创建一段内存区间代表该对象。

当调用方法时,就会先到类对应的内存空间,找到方法的定义,按照类中方法的定义去执行一些操作。

我的这种描述只是告诉你个大概的原理,还不够特别准确。如果想了解详细工作方式,可参考《.NET框架程序设计》这本书。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式