c#中关键字ref和out的区别

来源:互联网 发布:手机淘宝改背景颜色 编辑:程序博客网 时间:2024/05/22 00:39

C#中关键字ref与out的区别

在C#中,ref与out是很特殊的两个关键字。使用它们,可以使参数按照引用来传递。

总的来说,通常我们向方法中传递的是值.方法获得的是这些值的一个拷贝,然后使用这些拷贝,当方法运行完毕后,这些拷贝将被丢弃,而原来的值不将受到影响.此外我们还有其他向方法传递参数的形式,引用(ref)和输出(out).

有时,我们需要改变原来变量中的值,这时,我们可以向方法传递变量的引用,而不是变量的值.引用是一个变量,他可以访问原来变量的值,修改引用将修改原来变量的值.变量的值存储在内存中,可以创建一个引用,他指向变量在内存中的位置.当引用被修改时,修改的是内存中的值,因此变量的值可以将被修改.当我们调用一个含有引用参数的方法时,方法中的参数将指向被传递给方法的相应变量,因此,我们会明白,为什么当修改参数变量的修改也将导致原来变量的值.

通俗的从功能上来讲,使用这两个关键字,可以使一个方法返回多个参数。

MSDN中的定义:

ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用ref 参数,则方法定义和调用方法都必须显式使用ref 关键字。

out 关键字会导致参数通过引用来传递。这与ref 关键字类似,不同之处在于ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用out 关键字。

首先,我们来看一个简单的例子:

原创粉丝点击