首页 新闻 会员 周边 捐助

C#:关于new操作符疑问?

0
[已解决问题] 解决于 2015-11-13 23:44

使用new操作符创建一个对象时,如果该对象是引用类型,就一定需要在堆上分配内存;如果是值类型呢?是在堆栈上分配内存?求解释

C#
JaneEyreWork的主页 JaneEyreWork | 初学一级 | 园豆:11
提问于:2015-11-09 21:54
< >
分享
最佳答案
0

http://www.cnblogs.com/edisonchou/p/4787775.html

这篇文章应该对你有帮助

奖励园豆:5
澈澈 | 菜鸟二级 |园豆:440 | 2015-11-10 11:25
其他回答(2)
0

这里分两种情况 

1 如class 是引用类型的 但是里面有个int类型的属性 这个时候它是存在于堆上的

2 如Struct 是值类型 但是里有个string 类型的属性,这个时候它的值是存在于堆上而栈只保留一个引用

Zery | 园豆:6151 (大侠五级) | 2015-11-09 22:27

除了Struct之外的其他值类型呢?

支持(0) 反对(0) JaneEyreWork | 园豆:11 (初学一级) | 2015-11-09 23:20

@OSManager: Struct也是在栈上的只是它内部如果有引用类型,栈上只会保留引用,其它值类型都是在栈上

支持(0) 反对(0) Zery | 园豆:6151 (大侠五级) | 2015-11-09 23:22
0

买一本红宝书来好好看看 ,c#高级编程第7版

编程007 | 园豆:227 (菜鸟二级) | 2015-11-10 16:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册