巧解传值与传地址.doc_第1页
巧解传值与传地址.doc_第2页
巧解传值与传地址.doc_第3页
巧解传值与传地址.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

巧妙理解方法的值参数与引用参数方法的传值与传地址一直是困扰很多初学者的问题,下面有一种容易理解的方法,先看下面的程序:class Program static void SwapValue(int a, int b) int temp = a; a = b; b = temp; static void Main(string args) int a = 100; int b = 10; Console.WriteLine(执行传值函数前a=0,b=1,a,b); SwapValue(a, b); Console.WriteLine(执行传值函数后a=0,b=1, a, b); Console.ReadLine(); 运行的结果为:可见,调用方法SwapValue(int a,int b) 后,实参a,b的值并没有改变.参数可以通过引用或值传递给方法。在变量通过引用传递给方法时,被调用的方法得到的就是这个变量,所以在方法内部对变量进行的任何改变在方法退出后仍旧发挥作用。而如果变量是通过值传送给方法的,被调用的方法得到的是变量的一个副本,也就是说,在方法退出后,对变量进行的修改会丢失。对于复杂的数据类型,按引用传递的效率更高,因为在按值传递时,必须复制大量的数据。现在举例便于理解:建立两个文件夹 SwapValue和Main在Main文件夹中建立两个文本文件a和b,存放的类容分别是100和10 由于如果变量是通过值传送给方法的,被调用的方法得到的是变量的一个副本,也就是说复制了一份,那么,把刚才Main文件夹下面的a和b两个文件都复制到SwapValue文件夹下面然后把文件a的类容改为10,文件b的类容改为100,这类似方法的值传递,改变数值是在复制的副本上进行更改的,显然Main文件夹的类容不会改变.再看看传引用参数的程序示例:class Program static void SwapRef(ref int a,ref int b) int temp = a; a = b; b = temp; static void Main(string args) int a = 100; int b = 10; Console.WriteLine(执行传址函数前a=0,b=1,a,b); SwapRef(ref a,ref b); Console.WriteLine(执行传址函数后a=0,b=1, a,b); Console.ReadLine(); 运行结果为:结果a和b的值互换了.通过值传送变量是默认的,也可以迫使值参数通过引用传送给方法。为此,要使用ref关键字。如果把一个参数传递给方法,且这个方法的输入参数前带有ref关键字,则该方法对变量所作的任何改变都会影响原来对象的值.举例如下,另外建立一个文件夹SwapRef在SwapRef文件夹下面建立两个快捷方式,分别指向Main文件夹中的a和b 文件然后把SwapRef 文件夹下面的a 文件类容改为10,b文件类容改为100保存,再打开Main下面的a文件,发现类容改了,成来了10,b类容也改了,成了100.快捷方式其实就是指向原文件的地址的引用,它和原文件共用一块区域.这与引用参数有相似之处,引用参数并

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论