C# 所有变量存储都需要一个存储空间,在代码发生装箱操作后,object是如何存储这个类型的,存在哪里?

如:将int a=10 装箱后,10会被存在哪里?是怎么存储的,谢谢
2024-10-30 09:34:43
有1个网友回答
网友(1):

针对你的 int a=10来说,如果装箱object b= a , 将a装箱,b引用装箱对象a,也就是a装箱后将引用赋值给b, 这时候CLR将原来存储在栈上的值10直接移至到托管堆上,但是实例引用a继续留在栈上 ,此时会为10 在堆上会分配一块内存,连同10一起存储的还有 对象类型指针、同步快索引,这时候在栈上留有a,b两个实例引用,托管堆上的10的指针同时指向a、b。