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

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

值类型:intcharfloatlongbooldoublestructenumshortbytedecimalsbyteuintulongushort

引用类型:stringclassinterfacedelegateobject

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

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

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

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

举个例子:

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


你可能感兴趣的:(C#学习)