为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我们需要在C#中装箱和拆箱?

为什么我们需要在C#中装箱和拆箱?

HUWWW 2019-07-31 14:24:24
为什么我们需要在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会造成频繁的装箱和拆箱,有损性能,隐式转换也会带来编译错误。

        

查看完整回答
反对 回复 2019-09-09
  • 4 回答
  • 0 关注
  • 1521 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信