.net高级技术——ref和out的使用

  普通参数是"值类型传递值,引用类型传递引用",但是都不能在函数内部修改外部变量的指向。这个使用就要使用ref或者使用out关键字。

他们作用不同:

      ref:方法内部修改外部变量的引用

     out:方法内部给外部变量初始化,相当于一个函数可以有多个返回值

1.使用ref型参数时,必须在函数外部进行初始化,方法中可以不用进行赋值,而对于out而言:必须在方法内部给变量完成初始化,   方法外部初始化也没有用。

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

3.out适用与需要方法多个返回值的地方,而ref则用在需要被调用的方法修改调用调用者的引用的时候

在编译器中试试上面的错误呢?

1.ref参数在外部没有进行初始化

2.方法在调用的时候没有加ref关键字

3.out在外部初始化,在内部没有初始化

4.在内部对out变量进行初始化,在外部函数调用时不使用out关键字

下面我们来做一个小例子来熟悉下ref和out的使用

  public static int Template(ref int i, ref int j, out int k)
        {
            j = j - i;
            i = i + j;
            j = i - j;
            k = j;
            return i;
        }
        static void Main(string[] args)
        {
            //int i=0;
            //Test(ref i);

            //int j = 0;
            //Test2(out j);
            int i = 1;
            int j = 2;
            int k;
            int result = Template(ref i, ref j, out k);
            Console.WriteLine(string.Format("i={0},j={1},k={2},返回值={3}",i,j,k,result));
            Console.ReadKey();
        }

在上面i和j都有ref修饰,k有out修饰,方法带有返回值,返回一个int整数。

---本博客是学习以后记录知识,如有侵权,请联系删除!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值