C#中值类型、引用类型 再次理解

国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
内部邀请码:C8E245J (不写邀请码,没有现金送)
国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。 
------------------------------------------------------------------------------------------------------------------------------------------------------------------

重新理解一下C#中的值类型和引用类型,在以前读《C#高级编程(第三版)》时,也是粗略看了一下,没有在意,直到今天,重新认识了这个东西。

一、值类型:存储在堆栈中;引用类型:存储在托管对上;

二、值类型进行“=”操作时,会创建值类型的复制版本;

值类型:

值类型事例

引用类型:[ 建设已经定义了一个 Example 类 ]

引用类型事例

[说明:引用类型中,不用 string 做事例是因为它太特殊了,最主要的是自己还没有弄清楚这个东西,但是直到一点:“string 是引用类型,表现上却是值类型的特征。”,不知道为什么这么说?]

三、理解值类型和引用类型。值类型就是基本类型,int,long,double,bool,struct,enum 都是值类型;引用类型就是string 和自定义类 [面向对象里面的对象],可以将引用类型看成C++ 或 C中的指针,都指向内存中的一个地址,修改任何一个指向这个地址对象,其他的对象值都改变。这个东西的监视是由CLR负责接管的,不用我们操心了。

值类型、引用类型理解

结果:

Before test():
        ex.i=100        ex.str=out property     j=200   str=out string
Inner test():
        ex.i=880        ex.str=inner property   j=880   str=inner string
After test():
        ex.i=880        ex.str=inner property   j=200   str=out string

原文地址:https://www.cnblogs.com/AloneSword/p/793721.html