ref:把值类型变成引用类型传递,形参的值改变了实参的值也会改变
public static int findMax(ref int num1, ref int num2){num1 *= 2;num2 *= 2;return num1 + num2;}private static void Main(string[] args){int a1 = 1; int a2 = 2;findMax(ref a1, ref a2);//a1=2,a2=4,如果不用ref a1=1,a2=2.ref 参数必须初始化要不然会报错Console.WriteLine($"a1:{a1},a2:{a2}");}
out:使方法可以有多个返回值
private static void Main(string[] args){int a1=2;int a2=4;int avg;//avg可以初始化,也可以不初始化。result(a1, a2, out avg);Console.WriteLine($"out结果:{avg}");//avg=3} public static int result(int a1, int a2, out int a3){//使用out修饰的参数,在方法内部必须赋值,要不然会报错。a3 = (a1 + a2) / 2;return a1 + a2;}