c#基础值类和引用类型

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

值传递传递的值得本身

引用传递传递的是对对象的引用

ref:将值传递改变为引用传递

 //值传递和引用传递
            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;//拆箱

 

posted @ 2017-04-07 13:01  liusheng11188  阅读(191)  评论(0编辑  收藏  举报