为什么我们需要在C#中装箱和拆箱?为什么我们需要在C#中装箱和拆箱?我知道拳击和拆箱是什么,但我无法理解它的实际用途。我应该在哪里以及在哪里使用它?short s = 25;object objshort = s; //Boxingshort anothershort = (short)objshort; //Unboxing
4 回答
qq_慕容8568841
TA贡献1条经验 获得超0个赞
首先我想说,你那个“拳击”翻译得也太形象了点吧(用拳头把值类型锤进箱子里面去,哈哈哈哈……),正统的翻译叫“装箱”。然后说一下装箱和拆箱的用途,有时候你使用别人写的接口,用的是封装好的引用类型,而你定义的变量是值类型,这个时候就涉及到装箱。相反的,将别人的接口返回值(引用类型)转换成值类型,就涉及到拆箱。
例如:int a=5;
Func(object o); //别人写的接口
Func(a); //你调用别人的接口
最后,说一下在泛型和object类都能解决问题的情况下,应该尽可能使用泛型,泛型是在编译期检查类型;而使用object会造成频繁的装箱和拆箱,有损性能,隐式转换也会带来编译错误。
- 4 回答
- 0 关注
- 1582 浏览
添加回答
举报
0/150
提交
取消