ref为引用参数,out为值参数。
简单的说,ref既能将值带进方法,也能将值带出方法。
out不能将值带进方法,只能将值带出方法。
代码
//ref参数示例
class Test
{
static void Swap(ref int x,ref int y)
{
Console.WriteLine("进入Swap时:x={0},y={1}",x,y);
int temp = x;
x = y;
y = temp;
Console.WriteLine("退出Swap时:x={0},y={1}", x, y);
}
static void Main()
{
int i = 1, j = 2;
Console.WriteLine("执行Swap前:i={0},j={1}", i, j);
Swap(ref i,ref j);
Console.WriteLine("执行Swap后:i={0},j={1}", i, j);
Console.ReadLine();
}
}
执行结果:
执行Swap前: i=1,j=2
进入Swap时: x=1,y=2
退出Swap时: x=2,y=1
执行Swap后:i =2, j=1
将ref改为out你将会得到相应的错误提示