ref 和 out 的用法和区别以及params用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ref 和 out 的用法和区别以及params用法相关的知识,希望对你有一定的参考价值。

 

口诀:ref有进有出,out只出不进!

   在C#中既可以通过值传递也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数,可给相应的参数使用ref或者out关键字。其作用很像C中的指针。

ref的用法:

技术分享
 1 namespace ConsoleApplicationTest20160125
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             string a="初始化!";
 8             refMethod(ref a);
 9             Console.WriteLine("ref关键字的用法测试!\t");
10             Console.WriteLine("结果:a="+a);
11             Console.ReadKey();
12          }
13 
14         private static void refMethod(ref string a)
15         {
16             a = "执行了ref!";
17         }
18       
19        
20     }
View Code

运行结果:

 ref关键字的用法测试!
结果:a=执行了ref!

out的用法:

技术分享
 1 namespace ConsoleApplicationTest20160125
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             string b;//无需初始化
 8             outMethod(out b);
 9             Console.WriteLine("out关键字的用法测试!\t");
10             Console.WriteLine("结果:b=" + b);
11             Console.ReadKey();
12 
13         }
14 
15         private static void outMethod(out string b)
16         {
17             b = "执行了out!";
18         }
19     }
20 }
View Code

运行结果:
out关键字的用法测试
结果:b=执行了out!

以上是关于ref 和 out 的用法和区别以及params用法的主要内容,如果未能解决你的问题,请参考以下文章

out 和 ref + params 的理解

ref和out实际用法

ref和out的用法和区别。

C#值参数和引用参数,方法的重载,foreach,数组,以及ref和out的用法

std::ref用法以及和&引用区别

C# out ref 用法总结