新手请教——C#中的装箱和拆箱有什么用,如何巧妙使用? C#中的装箱和拆箱有什么用,如何巧妙使用 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 装箱就是把值类型转换成引用类型,拆箱反之。比如:int a=0;object obj=a;Console.WriteLine("对象的值={0}",obj); int b;b=(int)obj;Console.WriteLine("b的值={0}",b);-----------------------------------上面就是装箱和拆箱的操作。它在value-type 和reference-type之间的架起了一座桥梁,使得任何value-type的值都可以转换为object类型的值,反过来转换也可以。装箱和拆箱使我们能够统一地来考察类型系统,其中任何类型的值最终都可以按对象处理。C#中应该尽量避免装箱和拆箱操作,因为这样会对性能造成一定的影响。在.NET2.0中提供了泛型,应尽量使用泛型。 过多的使用box和unbox会影响到程序的性能 CTS值类型的一个最大的特点是它们不能为null,言外之意就是值类型的变量总有一个值。在C#中,它包括有原类型、结构、枚举器。这里需要强调一点:在传递值类型的变量时,我们实际传递的是变量的值,而非底层对象的引用,这一点和传递引用类型的变量的情况截然不同;CTS引用类型就好像是类型安全的指针,它可以为null。它包括 如类、接口、委托、数组等类型。对比前面值类型的特点,当我们分配一个引用类型时,系统会在后台的堆栈上分配一个值(内存分配与位置)并返回对这个值的引用;当值为null时,说明没有引用或类型指向某个对象。这就意味着,我们在声明一个引用类型的变量时,被操作的是此变量的引用(地址),而不是数据。 装箱-把值转换为object类型拆箱-把object类型转换为值可以增加类型的安全性,不过,还是建议用泛型好. 有了泛型,最好别用装箱拆箱。影响性能。就是为了提高代码的复用,你可以听听李建忠webcast说的很详细。 装箱在实际应用中的最好例子是ArrayList,在泛型出现之前,可是很强大的。甚至DataTable的底层代码都用ArrayList做。可以说没有装箱就实现不了ArrayList,没有ArrayList就没有DataTable,没有DataTable就没有操作数据库的能力。 VS 2008问题(二) C#实现电脑定时开关机的源码 把用.net2005做好的网站上传到网上空间里面需要在本地建虚拟目录么? 如何调用数据库操作类? outlook的签名问题 怎样判断一个SqlTransaction能否被rollback和commit? 如何提高ASP.NET站点性能,请各位推荐! listview的ColumnClick事件我能不能在button点击事件里面弟调用? 水晶报表里的里定的这段代码有错吗?怎么显示的内容是空的! 请问:C#基本文件读写 .net类库的一个奇怪问题 c# 把图片转成 256色的
比如:
int a=0;
object obj=a;
Console.WriteLine("对象的值={0}",obj);
int b;
b=(int)obj;
Console.WriteLine("b的值={0}",b);
-----------------------------------
上面就是装箱和拆箱的操作。它在value-type 和reference-type之间的架起了一座桥梁,使得任何value-type的值都可以转换为object类型的值,反过来转换也可以。装箱和拆箱使我们能够统一地来考察类型系统,其中任何类型的值最终都可以按对象处理。C#中应该尽量避免装箱和拆箱操作,因为这样会对性能造成一定的影响。
在.NET2.0中提供了泛型,应尽量使用泛型。
拆箱-把object类型转换为值可以增加类型的安全性,不过,还是建议用泛型好.
就是为了提高代码的复用,你可以听听李建忠webcast说的很详细。