首页 > Windows开发 > 详细

C#基础

时间:2020-06-09 18:59:35      阅读:40      评论:0      收藏:0      [点我收藏+]

1.对“引用类型保存在堆上,值类型保存在栈上”的纠偏

    第一部分,引用类型的实例总是在堆上创建的,这个目前是这样,不排除以后会在栈上创建。

    第二部分,变量的值是在他声明的位置存储的。如果是一个变量,那么它是在栈上,如果是某一个对象的变量呢,那么他一定是和对象的其他数据在一起,也就是在堆上。只有局部变量(方法内部声明的变量)和方法参数在栈上。

2.装箱和拆箱

  把值类型改变为引用类型,是装箱,把引用类型变为值类型是拆箱。对于引用类型的变量,他的值永远是一个引用。

  例如: int i=5;

            object t=i;

             i=6;

             int j=(int)t;

    i值类型的变量,t是引用类型的变量。t的值必须是一个引用,而i的值不是一个引用,那么实际发生的装箱就是运行时在堆上创建一个包含值为5的对象,也就是t的值是i的值的一个副本。改变i的值,t的值不会改变。

    拆箱时,在把t的值赋给j之后,t和j之间不再有任何关系。

 

  

C#基础

原文:https://www.cnblogs.com/fer-team/p/13079747.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!