C# out和ref传递数组

开发 后端
本文介绍C#传递数组,在使用数组类型的 out 参数前必须先为其赋值,即必须由接受方为其赋值,数组类型的 ref 参数必须由调用方明确赋值。

C#学习体会:使用out和ref C#传递数组(downmoon),希望与大家分享

1、与所有的 out 参数一样,在使用数组类型的 out 参数前必须先为其赋值,即必须由接受方为其赋值。例如:

  1. publicstaticvoidMyMethod(outint[]arr)  
  2. ...{  
  3. arr=newint[10];//数组arr的明确委派  

2、与所有的 ref 参数一样,数组类型的 ref 参数必须由调用方明确赋值。因此不需要由接受方明确赋值。可以将数组类型的 ref 参数更改为调用的结果。例如,可以为数组赋以 null 值,或将其初始化为另一个数组。例如:

  1. publicstaticvoidMyMethod(refint[]arr)  
  2. ...{  
  3. arr=newint[10];//arr初始化为一个新的数组  

下面的两个示例说明out和ref C#传递数组的方法上的用法差异。

示例 1
在此例中,在调用方(Main 方法)中声明数组 myArray,并在 FillArray 方法中初始化此数组。然后将数组元素返回调用方并显示。

  1. usingSystem;  
  2. classTestOut  
  3. ...{  
  4. staticpublicvoidFillArray(outint[]myArray)  
  5. ...{  
  6. //初始化数组(必须):  
  7. myArray=newint[5]...{1,2,3,4,5};  
  8. }  
  9.  
  10. staticpublicvoidMain()  
  11. ...{  
  12. int[]myArray;//初始化数组(不是必须的!)  
  13.  
  14. //传递数组给(使用out方式的)调用方:  
  15. FillArray(outmyArray);  
  16.  
  17. //显示数组元素  
  18. Console.WriteLine("数组元素是:");  
  19. for(inti=0;i<myArray.Length;i++)  
  20. Console.WriteLine(myArray[i]);  
  21. }  

示例 2
在此例中,在调用方(Main 方法)中初始化数组 myArray,并通过使用 ref 参数将其传递给 FillArray 方法。在 FillArray 方法中更新某些数组元素。然后将数组元素返回调用方并显示。 以上介绍out和ref C#传递数组。

  1. usingSystem;  
  2. classTestRef  
  3. ...{  
  4. publicstaticvoidFillArray(refint[]arr)  
  5. ...{  
  6. //根据需要创建一新的数组(不是必须的)  
  7. if(arr==null)  
  8. arr=newint[10];  
  9. //否则填充数组,就可以了  
  10. arr[0]=123;  
  11. arr[4]=1024;  
  12. }  
  13.  
  14. staticpublicvoidMain()  
  15. ...{  
  16. //初始化数组:  
  17. int[]myArray=...{1,2,3,4,5};  
  18.  
  19. //使用ref传递数组:  
  20. FillArray(refmyArray);  
  21.  
  22. //显示更新后的数组元素:  
  23. Console.WriteLine("数组元素是:");  
  24. for(inti=0;i<myArray.Length;i++)  
  25. Console.WriteLine(myArray[i]);  
  26. }  

【编辑推荐】

  1. C#记忆功能的地址栏控件
  2. 描述C#调用外部进程
  3. C#语言操纵数据库事务
  4. 概述C#语言异常处理
  5. 简单介绍C#数组和函数
责任编辑:佚名 来源: 博客园
相关推荐

2009-08-21 16:05:04

C#使用ref和out

2009-09-17 16:06:22

C#数组初始化

2009-09-17 16:36:59

C#一维数组C#多维数组

2009-09-16 09:00:15

C#数组C#指针

2009-09-27 11:14:09

C#数组

2009-08-07 09:29:22

C#数组C#函数

2009-09-04 11:00:13

通过C#引用传递

2009-09-17 16:45:56

C#数组

2009-08-28 15:57:56

C#线程传递参数

2009-08-27 17:47:18

C#匿名方法作为参数传

2009-09-18 10:21:13

C#数组C#串操作

2009-09-17 16:53:15

C#数组

2009-08-07 11:26:53

C#数组结构

2009-08-26 13:07:07

C#交错数组

2009-09-02 10:58:02

C#动态数组

2009-08-26 18:28:44

C#数组

2009-09-02 13:15:23

C#数组复制

2009-07-31 15:10:21

C#函数指针数组C#数组

2009-09-16 09:01:40

C#多维数组

2009-09-17 18:14:05

C#动态数组
点赞
收藏

51CTO技术栈公众号