C# 装箱 拆箱

来源:百度知道 编辑:UC知道 时间:2024/06/19 19:07:40
书上说int i=10;object obj=i;能装箱我明白,但
class T_Box
{
T value;
T_Box(T t){
value=t;
}
}
int i=10;
object obj=new int_Box(i);
也能装箱就不明白了.
还想问````干嘛要装箱```有啥用啊?``
问题补充:究竟多了啥功能啊?```我FLASH AS里的时候`没封装的概念 一样啥功能都有```能用来计算 代表状态 做函数的参数 虾米都一样啊````你这样说等于没说````

简单的说。装箱就是将值类型(value type)转换为引用类型(reference type)的过程,并从栈中搬到堆中.你既知object obj=i为装箱,object obj=new int_Box(i)有何难理解?

装箱拆箱的过程中,堆和栈的转换.直接影响性能,使用装拆箱是C#面向对象的精髓.处理大型的程序和软件,特别是有大批量数据的时候,这个很有必要的,比如代码片段中
ArrayList myArrayList = new ArrayList();
for(count = 0; count < 5000000; count++)
myArrayList.Add(count); //装箱
如果不使用装箱,就必须使用string [] strList = new string[5000000];

规劝一句,楼主这样的发问的口气很不好``不知为不知.

项目小了看不出来封装的优点,一旦项目一大,就知道封装是多么的安全了。