相同点:
out与ref都是址传递,执行方法后原来的值会改变
不同点:
1、使用ref时传入参数必须要初始化 out可以不用初始化
2、在函数体中,程序不一定需要对ref的值进行改变 out必须在函数体中重新赋值
class Program
{
public static void Test(out int a ,ref int b)
{
a = 15;
b = 20;
}
static void Main(string[] args)
{
int num1; //num1未初始化
int num2 = 10; //num2初始化为10
Test(out num1,ref num2); //在调用函数时需要显示指定out与ref否则会报参数无效
Console.WriteLine(" {0} {1}", num1, num2); //num1=15 num2=20
}
}