首页 新闻 搜索 专区 学院

引用类型中的值类型存在托管堆中还是栈中?

0
悬赏园豆:10 [已解决问题] 解决于 2013-09-04 10:28
class Student
{
      public int FID{get;set;}
      public int FName{get;set;}     
}   

Student stu=new Student();

我们都说引用类型(stu)存在于托管堆中值类型存在于栈中。那FID是值类型是存在与栈中吗?

小银光的主页 小银光 | 初学一级 | 园豆:25
提问于:2013-08-29 08:41
< >
分享
最佳答案
1

《C#图解教程》里是这样说的:

收获园豆:4
guwoow | 小虾三级 |园豆:611 | 2013-08-29 09:02

能发个链接吗?我想看图。

小银光 | 园豆:25 (初学一级) | 2013-08-29 10:41

@小银光: http://ishare.iask.sina.com.cn/f/15337729.html?from=like

这本书的第 24 页。

guwoow | 园豆:611 (小虾三级) | 2013-08-29 11:25
其他回答(3)
0

如果实例化Student,那么FID在对象stu中,也就是在堆中。

如果没有实例化Student,那么在Student声明值类型是存在于栈中的。

收获园豆:2
gohomeing | 园豆:206 (菜鸟二级) | 2013-08-29 09:03
0

引用类型放在 托管堆中,FID 是引用的成员字段,当然放在 堆中,

局部变量的值类型放在 堆栈中。

收获园豆:2
Qlin | 园豆:2403 (老鸟四级) | 2013-08-29 10:38
0

是放在堆中的,但是有一点需要注意的是,如果要把stu.FID当作一个实参,传递到某个方法中,还是要重新复制一个值传递过去,而不是传递这个值类型的地址。因此,类里面的值类型成员和引用类型成员还是有不同之处的。

收获园豆:2
NET_zhaoqiang | 园豆:296 (菜鸟二级) | 2013-08-29 13:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册