c# - 装箱与拆箱的作用?

查看:137
本文介绍了c# - 装箱与拆箱的作用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

查了下资料,大致知道装箱与拆箱是将值类型与引用类型进行转换。可是为什么要进行这样的转换呢?

解决方案

首先,你要理解基本数据类型与引用数据类型的存放模型。涉及到两个地方,一个是堆(stack),一个是堆栈(heap)。
1、对于基本数据类型,使用的是heap进行数据的保存,即每一个变量都指向heap中的一个内存单元。
2、对于引用数据类型,那就不一样了。引用数据中的变量名是存放在heap中的,而真正的数据是存放在stack中的一块内存区域中的。
所以,装箱操作,将基本数据类型转化为引用数据类型,需要为其在stack中创建一系列的额外内容,比如:

int i=0;
Integer j = new Integer(i);

对于i 只是存放在堆栈中,而j,除了在堆中保存其变量值外,还需要在堆中存放其他的一些方法,比如toString()等等。
拆箱操作,即是stack中的数据不再需要了,但是要根据是否可行将对象转化为普通的数据类型。
另外,一个最直观的现象就是,基本数据类型(值类型)没有方法,只有值,而对象类型,除了值,还有自己的方法。这就是装箱与拆箱操作的必要性。
希望对你有帮助,欢迎浏览我的个人网站

这篇关于c# - 装箱与拆箱的作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆