形参和实参,以及在内存中的分配

2/22/2017来源:ASP.NET技巧人气:1393

C#中有两种类型的数据,一种为值类型;另一种为引用类型。

值类型:int、char、float、long、bool、double、structenum、short、byte、decimal、sbyte、uint、ulong、ushort等

引用类型:stringclass、interface、delegate、object等

他们最大的区别就是存储的位置不同,前者值类型存储在内存的栈,后者存储在内存堆中,栈中的内存不需要自己就能回收,堆中的数据需要.Net FrameWork 自己的内存清理机制进行回收。

实参传递的是值,形参传递的是地址。 实参传递打个比方:我电脑有一个文件,你用U盘来拷贝我的这个文件,那么拷贝后你把文件放在你的电脑里进行任何的修改,都不会影响到我电脑里这个文件的内容

-------它们占用的是两个不同的内存空间(你的电脑和我的电脑). 形参传递打个比方,比如你电脑桌面上有一个txt文件,然后你再创建这个txt文件的快捷方式,接着你对这个快捷方式的txt文件内容做任何修改,那么原来的txt文件

内容也会同时被更改--------他们占用的是同一个内存空间(你的电脑).

举个例子:

ref是有进有出,out是只进不出。