Ref和Out两个关键字的作用有点像C中的指针变量,不同的是:
1 , 用Ref型参数是,传入的参数必须先被初始化,而Out则不要,Out必须在方法中对其完成初始化。
2, 用Ref和Out时都必须注意,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。
Out更适合用在要要Return多个返回值的地方,而Ref则用在要要被调出使用的方法修改调出使用者的引用的时候。
例如:
static void Doincrement (int param)
{
param++;
}
static void Main()
{
int arg = 42;
Doincrement (arg);
Console.WriteLine(arg);//输出 42 ,
}
//ref
static void Doincrement (ref int param)
{
param++;
}
static void Main()
{
int arg = 42;
Doincrement (ref arg);
Console.WriteLine(arg);//输出 43 ,
}
//out
static void Doincrement (out int param)
{
param = 42;
}
static void Main()
{
int arg ;
Doincrement (out arg);
Console.WriteLine(arg);//输出 42 ,
}