当前位置:编程学习 > C#/ASP.NET >>

装箱与拆箱

装箱和拆箱的概念及其过程是什么? --------------------编程问答-------------------- 建议自己看书。。
这种问题不能问别人。
自学才行,既然你是学习语言。 --------------------编程问答--------------------
引用 1 楼 dadahacker 的回复:
建议自己看书。。 
这种问题不能问别人。 
自学才行,既然你是学习语言。


再按书上的例子输入代码,运行,然后就明白了 --------------------编程问答--------------------
引用 2 楼 rangeon 的回复:
引用 1 楼 dadahacker 的回复:
建议自己看书。。 
这种问题不能问别人。 
自学才行,既然你是学习语言。 
 

再按书上的例子输入代码,运行,然后就明白了

如果还不明白,再问人~~~ --------------------编程问答-------------------- 顶楼上的  自己看书 --------------------编程问答-------------------- 装箱: 将值类型转换为object引用类型 
int i=10;
object ob=i;

拆箱:将object引用类型显式的转换为值类型
i=(int)ob;

注:object类型是所有值类型的基类 --------------------编程问答-------------------- 同楼上的... --------------------编程问答-------------------- 装箱: 将值类型转换为引用类型
拆箱:将引用类型显式的转换为值类型
拆箱要多注意一点.你装成什么类型就要拆成什么类型(就因为这个原因才出现的泛型) --------------------编程问答--------------------
其实装箱跟拆箱也不像书上说的那么简单!!!!!
我想楼主疑惑的不是拆与装箱的一个代码表示,而是它的内部实现是怎么样的.

csharp语言为例:
int a = 10;
char c = 'd';
int的类型是struct;char的类型也是个struct..在面向对象语言里这些值类型的都会是一个结构struct,
那么对于一个struct来说它里面可以有多个字段,那么从这个角度上来看,他是不是跟类很相似呢
于是就有这么一说,类是由struct发展过来的,也就是为了更好的组织而产生的。

说到这,似乎有点明了,但是仍不能说明装箱与拆箱的过程,由于本人学习编程也不久,没有深入过这个过程.

我想:
由值类型(int ...)到引用类型(类)本身上就有上面的那么发展过来的关系,而拆箱与装箱过程是同编译器来完成的,
那么这个编译器来编译时实现这个过程要遵守什么的样的约定,对于认识不足的我们来说,要求比较高.

不对之处,还请大家指正...
最后也希望有这方面知识的大哥哥大姐姐们交流与介绍一下.

最后,我也比较认同楼上所说:自学,但想必大家自学的时候,都有相当多的疑惑与弯路,那么去搜索与请教也不是不可以的嘛!!!
这也就是BBS,也就是网络存在的意义!!!



--------------------编程问答-------------------- 首先你要明白有值类型和引用类型之分

值类型分配在栈上,而引用类型在GC堆上.引用类型除了字段值外,还包括了方法表指针和同步索引2个字段.
所以装箱就是把栈上的值类型 报装 后复制到GC堆上,包上了 方法表指针和同步索引2个字段. 所以装箱是有性能损失的.因为加大了GC的压力

而拆箱和装箱不是相反过程,拆箱只是取得被装箱值类型的值而已. 但一般拆箱后都伴随一个复制的过程.
在C#里是不能控制装箱的,而C++中可以显示的控制 --------------------编程问答--------------------
值类型分配在栈上,而引用类型在GC堆上
======================================
这句话描述的不准确,应该是局部变量都分配在栈上,类里面的int字段还是分配在堆上的 --------------------编程问答-------------------- to cc_net  说的好! --------------------编程问答-------------------- 装箱就是将值类型转换为引用类型 
拆箱就是将引用类型转换为值类型 
一般常见的那些什么枚举、 int 、float 。。。都是值类型
 string 除外 看看书上的解释嘛 其实很容易懂的
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,