目录
用途
在C#中当我们一个方法需要返回多个返回值的时候,可以利用ref与out。
一、共同点
都是址传递,执行方法后,原来的值发生改变。
二、不同点
1.使用ref时,传入的参数必须初始化,而使用out时传入的参数可以不初始化。
2.ref把参数传递进入后,可以不进行操作,但是out将参数传递后,当函数执行完成时,必须要 对 out参数进行赋值操作。
代码
//ref的测试函数,函数体可以不对其进行操作,但必须对参数初始化。
void TestRef(ref int a , ref int b)
{
a = 30;
}
int a = 10;
int b = 20;
TestRef(ref a , ref b);
//最终结果为a=30,b=20。
//out的测试函数,函数体必须对其进行赋值操作,但可以不进行初始化。
void TestOut(out int a , out int b)
{
a = 30;
b = 40;
}
int a = 10;
int b;
TestOut(out a , out b);
//最终结果为a=30,b=40;