返回首页
当前位置: 主页 > 编程语言 > C#教程 >

C# ref和out的区别

时间:2017-03-31 15:28来源:电脑教程学习网 www.etwiki.cn 编辑:admin

编写程序过程中,有时会用到out和ref关键字;由于它们有些相似,所以常常会给人一些错觉。要正确的使用它们,清楚的了解它们的区别是必不可少的。

 

  一、out 和 ref 相同点:它们都是传址的,执行方法后,原来的值都改变了。

 

  二、out 和 ref 不同点:

  1、使用ref时,传入的参数必须初始化;而使用out时不用初始化。

  2、ref能把参数的值传进方法;而out要把参数清空(即使参数已经赋值也要清空),退出方法时,所有out参数都必须赋值。

 

  具体的实例如下:

  using System;
  class RefOutTest
  {
    static void refTest(ref int a, ref int b)
    {
      a = 10;
      b = a;
    }

    static void outTest(out int a, out int b)
    {
      //离开这个方法前,必须对a和b赋值,否则会报错。
      a = 10;
      b = 20;
    }
      
    static void Main()
    {
      int a = 1, b = 2;
      refTest(out a, out b);
      Console.WriteLine("a = {0}, b = {1}", a, b);

      int x,y;
      outTest(out x, out y);
      Console.WriteLine("x = {0}, y = {1}", x, y);
    }
  }

  程序执行输出:

  a = 10, b = 10

  x = 10,y = 20

------分隔线----------------------------
标签(Tag):c#
------分隔线----------------------------
推荐内容
猜你感兴趣