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

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

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


我知道拳击和拆箱是什么,但我无法理解它的实际用途。我应该在哪里以及在哪里使用它?


short s = 25;


object objshort = s;  //Boxing


short anothershort = (short)objshort;  //Unboxing


HUWWW
浏览 1536回答 4
4回答

qq_慕容8568841

首先我想说,你那个“拳击”翻译得也太形象了点吧(用拳头把值类型锤进箱子里面去,哈哈哈哈……),正统的翻译叫“装箱”。然后说一下装箱和拆箱的用途,有时候你使用别人写的接口,用的是封装好的引用类型,而你定义的变量是值类型,这个时候就涉及到装箱。相反的,将别人的接口返回值(引用类型)转换成值类型,就涉及到拆箱。例如:int    a=5;          Func(object o);    //别人写的接口          Func(a);    //你调用别人的接口最后,说一下在泛型和object类都能解决问题的情况下,应该尽可能使用泛型,泛型是在编译期检查类型;而使用object会造成频繁的装箱和拆箱,有损性能,隐式转换也会带来编译错误。        
打开App,查看更多内容
随时随地看视频慕课网APP