C#之ref参数
先看看没有学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参数要求在方法外必须为其赋值,而方法内可以不赋值。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
