新手请教——C#中的装箱和拆箱有什么用,如何巧妙使用?

snow_haoxue 2008-01-31 05:02:34
C#中的装箱和拆箱有什么用,如何巧妙使用
...全文
593 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
yonbin 2008-02-03
  • 打赏
  • 举报
回复
有了泛型,最好别用装箱拆箱。影响性能。
就是为了提高代码的复用,你可以听听李建忠webcast说的很详细。
liusong_china 2008-02-03
  • 打赏
  • 举报
回复
应该尽量避免使用...
Q_282898034 2008-02-03
  • 打赏
  • 举报
回复
装箱在实际应用中的最好例子是ArrayList,在泛型出现之前,可是很强大的。甚至DataTable的底层代码都用ArrayList做。可以说没有装箱就实现不了ArrayList,没有ArrayList就没有DataTable,没有DataTable就没有操作数据库的能力。
vrhero 2008-02-01
  • 打赏
  • 举报
回复
装拆箱是没有其他更好的办法时才用的...没什么巧妙使用...应该尽量避免使用...
LGame 2008-02-01
  • 打赏
  • 举报
回复
有泛型了。
极地_雪狼 2008-02-01
  • 打赏
  • 举报
回复
有泛型了。
LRG315 2008-01-31
  • 打赏
  • 举报
回复
装箱-把值转换为object类型
拆箱-把object类型转换为值

可以增加类型的安全性,不过,还是建议用泛型好.
nik_Amis 2008-01-31
  • 打赏
  • 举报
回复
up
sh1618 2008-01-31
  • 打赏
  • 举报
回复
没用过
HellMoxi 2008-01-31
  • 打赏
  • 举报
回复
装箱拆箱对性能有影响的吧...应该少用!
一品梅 2008-01-31
  • 打赏
  • 举报
回复
CTS值类型的一个最大的特点是它们不能为null,言外之意就是值类型的变量总有一个值。在C#中,它包括有原类型、结构、枚举器。这里需要强调一点:在传递值类型的变量时,我们实际传递的是变量的值,而非底层对象的引用,这一点和传递引用类型的变量的情况截然不同;CTS引用类型就好像是类型安全的指针,它可以为null。它包括 如类、接口、委托、数组等类型。对比前面值类型的特点,当我们分配一个引用类型时,系统会在后台的堆栈上分配一个值(内存分配与位置)并返回对这个值的引用;当值为null时,说明没有引用或类型指向某个对象。这就意味着,我们在声明一个引用类型的变量时,被操作的是此变量的引用(地址),而不是数据。
i0876 2008-01-31
  • 打赏
  • 举报
回复
虽然知道这么一回事。但从来没有用过!
allen_cn 2008-01-31
  • 打赏
  • 举报
回复
过多的使用box和unbox会影响到程序的性能
wheeler 2008-01-31
  • 打赏
  • 举报
回复
装箱就是把值类型转换成引用类型,拆箱反之。

不一定是值类型,引用类型亦可
liangfengxx 2008-01-31
  • 打赏
  • 举报
回复
装箱就是把值类型转换成引用类型,拆箱反之。
比如:
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中提供了泛型,应尽量使用泛型。
wheeler 2008-01-31
  • 打赏
  • 举报
回复
现在有泛型了,装箱和拆箱用得不多了。
jiatong1981 2008-01-31
  • 打赏
  • 举报
回复
熟肉

装在铁罐里 叫午餐肉

灌成香肠状 叫火腿肠

午餐肉 火腿肠 打开了都可以叫熟肉 都可以吃


110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧