码迷,mamicode.com
首页 > Windows程序 > 详细

C#ref和out的使用

时间:2020-05-07 15:09:12      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:text   hit   返回值   ref   read   height   实例   lang   family   

1.用途:
在C#中通过使用方法来获取返回值时,通常只能得到一个返回值。因此,当一个方法需要多个返回值的时候,就需要用到ref和out
 
2.概述:
ref关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所作的任何修改都将反映在该变量中。若要使用ref参数,则方法定义和调用方法都必须显式使用ref关键字
out关键字会导致参数通过引用来传递。这与ref关键字类似,不同之处在于ref要求变量必须在传递之前进行初始化。若要使用out参数,方法定义和调用方法都必须显示使用out关键字
 
3.异同点
同:
1.都能返回多个返回值
2.若要使用ref和out参数,则方法定义和调用方法必须显示使用ref和out
关键字。在方法中对参数的设置和改变将会直接影响函数的调用之处
 
异:
1.ref指定的参数在函数调用的时候必须初始化,不能为空的引用。而out指定
的参数在函数调用时候可以不初始化
2.out指定的参数在进入函数时会清空自己,必须在函数内部赋初值。而ref指
定的参数不需要
 
4.口诀:
ref有进有出,out只出不进
 
5.实例
 1 //ref传递参数之前必须赋初值
 2   static void Main(string[] args)
 3         {
 4             int a = 10;
 5             int b = 20;
 6             GetValue(ref a, ref b);
 7             Console.WriteLine($"{a}  {b}");
 8             Console.ReadKey();
 9         }
10         static void  GetValue(ref int x,ref int y)
11         {
12             Console.WriteLine($"{x}  {y}");
13             x = 50;
14             y = 60;
15         }
结果:
技术图片
 
 1   static void Main(string[] args)
 2         {
 3             //out在这里赋不赋值没影响
 4             //int a = 10;
 5             //int b = 20;
 6             int a, b;
 7             GetValue(out a, out b);
 8             Console.WriteLine($"{a}  {b}");
 9             Console.ReadKey();
10         }
11         static void  GetValue(out int x,out int y)
12         {
13             //out在方法内必须先赋值再用。
14             //Console.WriteLine($"{x}  {y}");
15             x = 50;
16             y = 60;
17             Console.WriteLine($"{x}  {y}");
18         }

 结果:

技术图片

C#ref和out的使用

标签:text   hit   返回值   ref   read   height   实例   lang   family   

原文地址:https://www.cnblogs.com/fanjianzhi/p/12842876.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!