我刚学C#,这个例子我觉得很好,想跟大家分享一下,
但是网上又找不到现成的,就只好一个一个的敲,就当是练字吧。
----------------------------------------
C#中有关于:按 值 和 引用 传递参数 的理解
设想你正和几个同事一同使用一个书面的报告.你的同事问你要这份报告.可以通过两种方式将报告传给他们.
·影印该文档
·告诉你的同事:“它在第4个架子下面。”
<你的同事是你调用的一个方法,要将参数传递给他。
·传递的影印本是通过“值”传递。
·告诉你的同事原本的存储位置,在术语 称为“按引用传递”。
下面是关于这些参数传递方法的要点:
·传递数据的副本(通过值)更为安全。你掌握着原始的数据项。你的同事所做的任何修改不会影响的副本。
·传递数据的所在之处(按引用传递)速度很快。事实上,没有数据实际被复制或移动,
而且你的同事无须将文档拿出你的房间就能够进行修改。但要记住该数据项只有一个版本。
你的同事具有和你一样的修改这个单版本的权力。有时你可能会希望他这样做,
但在一些时候却并非如此。
下面看一下计算机的随机存储器(RAM)是如何组织的。
RAM包含数百万个存储箱, 这些存储箱称作为存储单元。
每一个单元有一个地址,就像街道上的编号的房屋。
换言之,每个变量与一个地址相关联。
现在就接近了参数传递的关键点:如果想要传递变量给方法,可有两种选择:
·传递当前值的一个副本。
·传递地址。用C#术语来表示即传递一个变量的引用,只要知道变量的位置,
它就知道应该访问哪一个单元。在其它语言中,引用称为指针。
正如你将看到的,C#允许两种类型的引用:使用关键安ref或者out。