黑马程序员技术交流社区

标题: 求解释 [打印本页]

作者: lilong9298    时间: 2013-6-19 18:25
标题: 求解释
本帖最后由 lilong9298 于 2013-6-20 08:51 编辑

函数的ret,out 参数

作者: 吴承烨    时间: 2013-6-19 18:44
ref和out的区别:ref是对已经赋值的变量对其的值进行改变,而out是对未赋值的变量进行初始化.
作者: lilong9298    时间: 2013-6-19 19:27
吴承烨 发表于 2013-6-19 18:44
ref和out的区别:ref是对已经赋值的变量对其的值进行改变,而out是对未赋值的变量进行初始化. ...

有代码解释吗
作者: y96352    时间: 2013-6-19 19:37
1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。

2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。

3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。
public int  RefValue(int i,ref int j)
        {
            int k = j;
            j =222;
            return i+k;
        }

     
        public int OutValue(int i, out int j)
        {
            j = 222;
            return i + j;
        }

        private void cmdRef_Click(object sender, EventArgs e)
        {
            int m = 0;
            MessageBox.Show(RefValue(1, ref m).ToString());
            MessageBox.Show(m.ToString());
        }

        private void cmdOut_Click(object sender, EventArgs e)
        {
            int m;
            MessageBox.Show(OutValue(1, out m).ToString());
            MessageBox.Show(m.ToString());
        }
ref是有进有出,而out是只出不进




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2