C#中的out和ref关键字之间的区别

out关键字

out关键字用于将参数作为引用类型传递给方法,主要用于方法必须返回多个值时。ref关键字还用于将参数作为引用类型传递给方法,并且在要在方法中修改现有变量时使用。以下是C#中ref和out关键字的有效用法。

示例

using System.IO;
using System;
public class Program {
   public static void update(out int a){
      a = 10;
   }
   public static void change(ref int d){
      d = 11;
   }
   public static void Main() {
      int b;
      int c = 9;
      Program p1 = new Program();
      update(out b);
      change(ref c);
      Console.WriteLine("Updated value is: {0}", b);
      Console.WriteLine("Changed value is: {0}", c);
   }
}

输出结果

Updated value is: 10
Changed value is: 11

以下是ref和out关键字之间的一些重要区别。

序号ref关键字out关键字
1目的当调用的方法必须更新传递的参数时,将使用ref关键字。当调用的方法必须更新传递的多个参数时,将使用out关键字。
2方向ref关键字用于双向传递数据。out关键字用于单向获取数据。
3初始化在将变量作为ref传递之前,需要先对其进行初始化,否则编译器将引发错误。如果使用out关键字,则无需初始化变量。
4初始化在被调用的方法中,不需要初始化作为ref传递的参数。在被调用的方法中,需要初始化作为out传递的参数。