.NET万物皆对象,那么为什么int分配在statck上面,string分配在heap上

KEL-1 2010-06-19 02:50:39
是不是值类型System.valuetype重写了system.object的什么方法?然后导致分配内存地址不同?
...全文
155 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
KEL-1 2010-06-20
  • 打赏
  • 举报
回复
In .NET everything is an object, but not everything is a class 搞定
jianshao810 2010-06-19
  • 打赏
  • 举报
回复
对象也分 值类型与 引用类型的嘛
boringame 2010-06-19
  • 打赏
  • 举报
回复
万物皆对象和内存分配堆栈有什么关系嘛?
不矛盾吧。
wuyq11 2010-06-19
  • 打赏
  • 举报
回复
内存分配是clr控制的
NET将物理内存块分为两个数据存储区栈(stack)和托管堆(managed heap)
string类型属于引用类型
托管堆是连续分配的自由存储区,访问速度较慢,引用类型实例的值都存在这里
jianuMan 2010-06-19
  • 打赏
  • 举报
回复
CLR规定的

记住就行了 虽然万物皆对象,但是int 是值类型 有区别的
兔子-顾问 2010-06-19
  • 打赏
  • 举报
回复
clr决定的。这是规则。既定的规则。记住就可以了。我们猜测clr是根据类型判断。看是否是继承自ValueType来判断如何分配内存。
qq234121906 2010-06-19
  • 打赏
  • 举报
回复
UP sf

111,096

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧