class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
int a = 1;
//装箱操作:比较消耗性能“最” box
//值类型隐式转换为object类型或由此值类型实现的任何接口类型的过程
//内部机制:
/*1在堆中开辟内存空间,存储以下三个内容
* ①int
* ②同步索引快
* ③类型对象指针
* 2将值类型的数据复制到堆中
* 3返回堆中新分配对象的地址
*/
object o = a;
//拆箱操作: 也消耗性能 unbox
/*从object类型转到值类型或从接口类型到实现该接口的值类型的显示转换
* 内部机制:
* 1判断给定类型是否是装箱时的类型
* 2返回已装箱实例中属于值类型字段的地址
*/
int b = (int)0;
//拆装箱的作用是什么呢?
//形参是obeject 类型,实参传递值类型,则装箱
//可以通过 重载和泛型 避免。
int num = 100;
//下面的语句并未进行拆装箱操作
string str = num.ToString();
//有拆装箱的操作
string str2 = "" + num;
//上面的语句实际上是在内部这样执行的,如下:
//string str2 = string.Concat("",num)//int ==>object
//string.Concat()方法的参数是object类型
//其实性能消耗并不大
//但是程序员要了解这一点,是考题
}
}
![](https://img-blog.csdnimg.cn/20200404181506563.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l1ZXI0MTc=,size_16,color_FFFFFF,t_70)