C# 中的 Out 和 Ref 参数
时间:2010-11-09 来源:第七维
1、out 参数
out 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。
public class mathClass
{
public static int TestOut(out int iVal1, out int iVal2)
{
iVal1 = 10;
iVal2 = 20;
return 0;
}
public static void Main()
{
int i, j; // variable need not be initialized
Console.WriteLine(TestOut(out i, out j));
Console.WriteLine(i);
Console.WriteLine(j);
}
}
2、ref 参数
ref 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。
static void Main(string[] args)
{
// Ref sample
int refi; // variable need not be initialized
refi = 3;
RefTest(ref refi);
Console.WriteLine(refi);
Console.ReadKey();
}
public static void RefTest(ref int iVal1)
{
iVal1 += 2;
}
3、区别
使用ref前必须对变量赋值,out不用。
out的函数会清空变量,即使变量已经赋值也不行,退出函数时所有out引用的变量都要赋值,ref引用的可以修改,也可以不修改。