先看看没有学ref之前我们是怎么传参的?举例:一个人薪资是5000,有奖金跟罚款两个方法
class Program{ static void Main(string[] args) { double salary = 5000; JiangJin(salary); Console.WriteLine(salary); // 打印出5500 } public static double JiangJin(double s) { s += 500; return s; } public static double FaKuan(double s) { s -= 500; return s; }
那么,有没有这样一种方式,帮助我们在方法里面去改变一个变量,而外面也跟着改变。有,当然有,就是ref。
class Program{ static void Main(string[] args) { double salary = 5000; JiangJin(ref salary); Console.WriteLine(salary); // 这边就自动打印出5500 } public static void JiangJin(ref double s) { s += 500; } public static void FaKuan(ref double s) { s -= 500; }}
需求:使用方法来交换两个int类型的变量。
第一种方式:声明第三个变量
int n1 = 10;int n2 = 20;int temp = n1;
n2 = temp;
第二种方式:减加减
int n1 = 10;int n2 = 20;n1 = n1 - n2; // 得到n1为-10, n2为20n2 = n1 + n2; // 得到n1为-10,n2为10n1 = n2 - n1;// 得到n1为20,n2为10
第三种方式:方法
public static void Test(ref int n1,ref int n2){ int temp = n1; n1 = n2; n2 =temp;}// 调用Test(ref n1, ref n2);
总结:
ref参数能够将一个变量带入一个方法中进行改变,改变完成后,再将改变后的值带出方法。ref参数要求在方法外必须为其赋值,而方法内可以不赋值。
标签:C#,double,int,static,参数,n1,n2,ref From: https://blog.51cto.com/u_11666747/5730083