方法参数上的 ref 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,
在方法中对参数所做的任何更改都将反映在该变量中。 若要使用 ref 参数,必须将参数作为 ref 
参数显式传递到方法。ref 参数的值被传递到 ref 参数。 传递到 ref 参数的参数必须最先初始化。
将此方法与 out 参数相比,后者的参数在传递到 out 参数之前不必显式初始化。 属性不是变量,
不能作为 ref 参数传递。
大家能讲一下ref关键字吗?用你自己理解的、直白的语言表述,不要像上面官方的语言。

解决方案 »

  1.   

    假如说,你在一个方法A中调用方法B
    你想给A方法中的变量(或者是其他地方的变量)N通过方法B来获取值
    这时就要用到ref关键字了
    例:
          public void A()
            {
                int n = "";
                B(ref n);
                //下面就可以用到 n 来作别的操作了
            }        public void B(ref int n)
            {
                n = 1;//获取值过程
            }
    不知这样说清楚了没?
      

  2.   

    在方法中对参数所做的任何更改都将反映在传入的变量中class RefExample
    {
        static void Method(ref int i)
        {
            i = 44;
        }
        static void Main()
        {
            int val = 0;
            Method(ref val);
            // val is now 44
        }
    }  
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 
    http://feiyun0112.cnblogs.com/
      

  3.   

    int n 可以等于 ""  楼上的强人out 和 ref  个人在用法上没发现什么区别更深层次的没仔细联系过
      

  4.   

    引用调用参数就是说,这个传递的是参数的实际地址,当你的参数在方法中改变时,会影响到传进来的变量比如说有个TEXT,如果是按值传递方法中做什么事情都和参数无关(参数不受影响)但是按引用传递,方法中的参数值变了,TEXT也会跟着改变!
      

  5.   

    ref 的参数使用前必须赋值,out 的参数可以不赋值.其它一样
      

  6.   

    ref 方法外对参数先赋值一个初始值,方法中修改该参数的值,并最终将修改后的值传出方法。
    out 方法外仅需要声明,方法中赋值,并传出,我觉得有点象方法的返回值。
      

  7.   

    函数就好像一个黑洞, 参数就是你扔进去一根绳子栓着的肉,
    当你希望能钓上非肉, 或者其他肉, 用 ref 或者 out
    当只是为了送肉进去, 不关心绳子收上来时钩着什么时, 不用加修饰符, 这时绳子收上来时, 会把你当时挂的肉再挂上, 就好像你没往里放一样.(一根绳子只能挂一块肉, 肉有类型之分)ref out 的都可以在洞里挂东西, 不同的是 out 必须先初始化吧.
      

  8.   

    out 的肉, 进去后指定被搞一下
      

  9.   

    ref 按引用传递参数,在方法内部对此参数做的更改,将影响到原来的值!
      

  10.   

    ref 实参实例化
    out 形参实例化
      

  11.   

    ref 就是你传到方法里面的时候,可以不行行任何操作返回;
    out 就是你传到方法里面的时候,必须要进行赋值才能返回。
    简单吧?
      

  12.   

    参数引用传递。当传递的参数是值类型时,比如int,string,bool值。
    该参数在方法中被修改时,函数外的变量不会变。
    比如int a=10;
    test(a);public test(int a)
    {
    a++;
    }
    执行完test(a)之后,a的值还是10,而不是11。
    想让执行完后a的值为11那就用ref修饰符int a=10;
    test(ref a);public test(ref int a )
    {
    a++;
    }
      

  13.   

    我的理解:
            引用调用参数,也就数实参是已经定义好并且有初始的变量,并是用ref修饰。
    然而形参也有ref修饰,并且形参的值改变会影响实参的值~
      

  14.   

    ref就是引用呀 貌似很好理解!
    官方的解释也很清楚
    楼上几位的例子也很详尽了!
      

  15.   

    ref out参数结果是一样的。他们都是引用变量的内存地址,可以改变变量的值。不同的是:
    ref必须在方法体外初始化
    out必须在方法体内初始化