ref参数和out参数实际上都是将值类型转化为引用类型。

  但是他们还有区别:

  在使用ref参数时,和其他方法传递参数一样,必须进行初始化,尽管在方法中会将其对应的值改变。但是在out参数使用的过程中是不需要去初始化的,更侧重于输出,方法对该变量进行的任何修改都会被保留下来。

ref参数:


static void SomeFunction(ref int i)
 {
       i = 10;      
 }
  
 public static int Main()
 {
      int i = 20;                        //初始化

      SomeFunction(out i);
      Consloe.WriteLine(i);

      return 0;      
}

 

        

out参数:

static void SomeFunction(out int i)
 {
       i = 10;      
 }
  
 public static int Main()
 {
      int i;                        //未初始化

      SomeFunction(out i);
      Consloe.WriteLine(i);

      return 0;      
}

 

 

posted on 2013-11-09 16:09  ForeverX  阅读(219)  评论(0编辑  收藏  举报