c#基础值类和引用类型

时间:2022-05-31 08:08:56

//值类型:int double char decimal bool enum struct
//引用类型:string 数组 自定义类 集合 object 接口

//值传递和引用传递 int n1 = 10; int n2 = n1; n2 = 20; Console.WriteLine(n1);//10 Console.WriteLine(n2);//20 Console.ReadKey();

如果是引用类型,是最后一个

Person p1 = new Person(); //这是引用类型 p1.Name = "张三"; Person p2 = p1; p2.Name = "李四"; // p1.Name = "1223"; Console.WriteLine(p2.Name);//反正是最后一个1233 Console.WriteLine(p1.Name);//反正是最后一个 Console.ReadKey();//李四 //如果这里没有 p1.Name = "1223"; 这是李四李四

装箱、拆箱
装箱:就是将值类型转换为引用类型。
拆箱:将引用类型转换为值类型。
看两种类型是否发生了装箱或者拆箱,要看,这两种类型是否存在继承关系

避免拆箱和装箱

//这个地方没有发生任意类型的装箱或者拆箱
//string str = "123";
//int n = Convert.ToInt32(str);//看两种类型是否发生了装箱或者拆箱,要看,,这两种类型是否存在继承关系


//int n = 10;
//object o = n;//装箱 值类型=>引用类型n =>o
//int nn = (int)o;//拆箱