ref关键字是用来修饰参数的,如果一个形参用ref来修饰了,那么对应的实参也需要用ref来修饰。ref修饰的参数在传参的时候传递的其实是实参的地址而并不是实参的值。
out关键字是用来修饰参数的,如果一个形参用out来修饰了,那么对应的实参也需要用out来修饰。out修饰的参数在传参的时候传递的其实是实参的地址。
【区别】1、在方法结束之前,必须对out参数进行赋值,类似返回值。2、ref参数默认是有值的,指向实参的值。而out参数默认是未赋值的状态,不能直接使用。

class Program
{
public static void Main(string[] args)
{
//ref关键字
#region
int x = 10, y = 20;
Swap(ref x, ref y);
Console.WriteLine($"x={x},y={y}");
#endregion

int number = 20;
ChangeOut(out number);
Console.WriteLine(number);

}
//设计一个方法,交换两个变量的值
static void Swap(ref int a,ref int b)
{
int c = a;
a = b;
b = c;
}

//out关键字使用
static void ChangeOut(out int a)
{
a = 10;
Console.WriteLine(a);
}
}