1.示例代码
1.1有装拆箱操作的代码部分
static void Main(string[] args)
{
int num = 100;
string str = "" + num;
Console.WriteLine(str);
}
形参object类型,实参传递值类型则装箱;可以通过重载,泛型来避免。
1.2没有装拆箱操作的代码部分
static void Main(string[] args)
{
int num = 100;
string str = "" + num.ToString();
Console.WriteLine(str);
}
图示差异在是否对num进行了主动转换。
2.总结
2.1装箱box的含义
值类型隐式转换为object类型,或由此类型实现的任何接口类型的过程。
2.2装箱的内部机制
1.在堆中开辟内存空间。
2.将值类型的数据复制到堆中。
3.返回堆中新分配对象的地址。