ASP.NET ( C# + SQL ) 学习者

不积小流,无以成江海;不积跬步,无以至千里
让我们一起成长
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C#中有关于:按 值 和 引用 传递参数 的理解

Posted on 2006-11-21 18:10  耀眼冰蓝  阅读(1562)  评论(0编辑  收藏  举报

我刚学C#,这个例子我觉得很好,想跟大家分享一下,
但是网上又找不到现成的,就只好一个一个的敲,就当是练字吧。
----------------------------------------
C#中有关于:按 值 和 引用 传递参数 的理解

设想你正和几个同事一同使用一个书面的报告.你的同事问你要这份报告.可以通过两种方式将报告传给他们.

·影印该文档
·告诉你的同事:“它在第4个架子下面。”

 <你的同事是你调用的一个方法,要将参数传递给他。

·传递的影印本是通过“值”传递。
·告诉你的同事原本的存储位置,在术语 称为“按引用传递”。

下面是关于这些参数传递方法的要点

·传递数据的副本(通过值)更为安全。你掌握着原始的数据项。你的同事所做的任何修改不会影响的副本。
·传递数据的所在之处(按引用传递)速度很快。事实上,没有数据实际被复制或移动,
   而且你的同事无须将文档拿出你的房间就能够进行修改。但要记住该数据项只有一个版本。
   你的同事具有和你一样的修改这个单版本的权力。有时你可能会希望他这样做,
   但在一些时候却并非如此。

下面看一下计算机的随机存储器(RAM)是如何组织的。
  RAM包含数百万个存储箱, 这些存储箱称作为存储单元。
  每一个单元有一个地址,就像街道上的编号的房屋。
  换言之,每个变量与一个地址相关联。

现在就接近了参数传递的关键点:如果想要传递变量给方法,可有两种选择:

·传递当前值的一个副本。
·传递地址。用C#术语来表示即传递一个变量的引用,只要知道变量的位置,
  它就知道应该访问哪一个单元。在其它语言中,引用称为指针。
  正如你将看到的,C#允许两种类型的引用:使用关键安ref或者out。

28 Apr 07