ref关键字,迫使值参数通过引用传递给方法,则给方法对变量所作的修改都会影响原来对象的值.
在定义该方法时把该参数定义为ref后,在调用该方法时,还需要添加ref关键字。
static void myFun(int x,ref int y)
{
y = x;
}
//调用该方法
myFun(x,ref y);
C#中除了ref关键字以外,还有out关键字,和ref一样 out变量同样是传地址的.
有时为了从一个函数中返回多个值,我们需要使用out关键字,把输出值赋给通过引用传递给方法的变量(也就是参数)。但C#要求变量再被引用的前必须初始化。在调用该方法时,还需要添加out关键字。
static void myFun(out int y)
{
y = 10; //在这里进行初始化
}
//
//调用该方法
public static int Main()
{
int i;
myFun(out i);
Console.Writeline(i);
return 0;
}
从上面的例子我们可以看出,out关键字和ref的不同点主要在:
ref变量在传入函数体以前必须初始化,而out变量则不必。但是out变量必须在在方法体内为变量提供初始值,否则,编译器会报错。
文章出处:http://www.host01.com/article/Net/00020007/0561316360468348.htm