装箱:就是将值类型转换为引用类型。
拆箱:就是将引用类型转换为值类型。
一个容易误解的地方
str ="123";
int num=int.parse(str);
以上代码也进行了类型转换,把字符串转换为整数,但是并没有进行装箱和拆箱操作。
因为要发生装箱和拆箱操作,需要有一个大前提,两个类型之间必须有继承关系,int和str之间显然并非继承,因此并没有装拆箱。
这也是ArrayList和Hashtable两种集合不再使用的原因,因为ArrayList和Hashtable操作的都是object,object是所有类的基类,存在继承关系。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 字典
{
class Program
{
static void Main(string[] args)
{
Dictionary<int, string> dic = new Dictionary<int, string>();
dic.Add(1, "gh"