教学贴:引用类型,值传递,引用传递
於黾 2015-02-06 10:54:23 很多人老是搞不懂引用类型到底是个什么玩意,查MSDN,上网查,基本就是堆栈什么的,枯涩难懂
我就来给大家形象的解释解释什么是引用类型
值类型大家基本都知道是怎么回事,就不赘述了
引用类型不过就是类似硬盘上的文件,比如D:\1.TXT
实例化一个对象(创建文件),它的实例始终只有一个,而路径就是它的引用,引用它的对象可以有很多个(就是一串文本)
你可以在同一个程序里的不同地方使用这个路径,甚至在不同的程序里使用这个路径,但是不管你用了多少次,它都指向的同一个对象
什么是值传递呢?
就是只把路径传递过去
那么我拿到路径之后,通过这个路径把文件改了,传路径过来的地方再去访问这个文件,也同样是改过的
而如果我拿到路径之后不用,而是重新new一个对象(copy了一个文件,叫D:\副本-1.TXT),那么当前的路径(引用)是指向了新的对象,跟原来的没任何关系了,我无论对这个文件如何改,都不影响原来的
什么是引用传递呢?
就是把路径传递回去。
如果路径没变(没有重新copy文件),那么传回去和不传回去其实没有区别,反正没变嘛
如果路径变了,那么把新路径传递回去,那么两个地方就都指向新文件,而旧文件就没用了