码迷,mamicode.com
首页 > 其他好文 > 详细

聚沙成塔【1】——值类型/引用类型

时间:2016-08-04 01:27:23      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

值类型  :顾名思义就是在内存中储存其值的类型,是存放于堆栈中的类型,13个{sbyte,byte,short,ushort,int,uint,long,ulong,float,double,decimal,bool,char}

引用类型   :在内存中存放的是对其的引用地址,是存放于托管堆中的类型,2个{string,object}

--------------------------------------------------------------------------------

string  :拥有值类型的赋值方式,但实际上是一个引用类型

      1、string跟system.String有什么区别?——>两者实际并无差别,当string被编译成类时就相当于String

      2、string跟其他引用类型的区别——>每次赋值时都会New一个新对象,而不是将对象的引用地址指向新变量

      如:

Person p1=new Person();
p1.name="张三";
Person p2=p1;
Console.writeLine(p1.name);//此处输出p1.name="张三";
Console.writeLine(p2.name);//此处输出p2.name="张三";
p2.name="李四";
Console.writeLine(p1.name);//此处输出p1.name="李四";
Console.writeLine(p2.name);//此处输出p2.name="李四";

//由此可见p1和p2是引用同一个地址,而string则不同

string p1="张三";
string p2=p;
Console.writeLine(p1);//此处输出p1="张三";
Console.writeLine(p2);//此处输出p2="张三";
p2="李四";
Console.writeLine(p1);//此处输出p1="张三";
Console.writeLine(p2);//此处输出p2="李四";

//由此可见,每次将string的变量值赋值给另一个变量,都相当于new一个新string对象

 

Object :是所有类型的父类型 

 

聚沙成塔【1】——值类型/引用类型

标签:

原文地址:http://www.cnblogs.com/AssertionBird/p/5735069.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!