关键词ref和out的作用是什么?他们有什么区别?

作用:

Ref:用于将方法内的变量改变后带出方法外;

Out:一个方法有多个返回值的时候,用Out可以返回多个返回值;

区别:

使用ref参数时,传入的参数必须先初始化,Out在进入传入之前没必要初始化;

Ref传进去的参数在方法内部可以直接使用,Out不可以,因为在就算有值也被清空了;

为了方便理解,可以参考以下代码:

 public class Program{static void Main(string[] args){Console.WriteLine("==============Ref的使用==============");int num1 = 10;int num2 = 20;Console.WriteLine("加Ref之前");TestA(num1, num2);Console.WriteLine("TestA外输出:num1=" + num1 + ";num2=" + num2);Console.WriteLine("加Ref之后");//为了避免不必要的麻烦,我们将num1和num2重新赋值num1 = 10;num2 = 20;TestB(ref num1, ref num2);Console.WriteLine("TestB外输出:num1=" + num1 + ";num2=" + num2);Console.WriteLine("==============Out的使用==============");int numA, numB,numC;numC = TestC(num1, num2, out numA, out numB);Console.WriteLine("numA:"+numA+";numB:"+numB+";numC:"+numC);Console.ReadKey();}public static void TestA(int num1,int num2) {num1++;num2++;Console.WriteLine("TestA内输出:num1="+num1+";num2="+num2);}public static void TestB(ref int num1, ref int num2){num1++;num2++;Console.WriteLine("TestB内输出:num1=" + num1 + ";num2=" + num2);}public static int TestC(int num1, int num2,out int num3,out int num4){//如果我想反回多个参数,只用return是不行的,用out就可以解决num3 = num1 + num2;num4 = num1 * num3;return num1 * num2;}}

注意:

1、使用ref型参数时,传入的参数必须先被初始化,对out而言,必须在方法中对其完成初始化。

2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字,以满足匹配。

3、ref传进去的参数在函数内部可以直接使用,而out不可以。

Demo链接:https://github.com/wangongshen/Wgs.CSDN.Demo2019.git


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部