REF (关键字)

.net的关键字,ref关键字–让参数按照引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中;也等同将值类型的数据使用引用方式传参。若要使用ref参数,则方法定义和调用方法都必须显式使用ref关键字。ref是 Reference的缩写。
用途 C#中关键字通过引用传递参数, 引用方法: 显式使用
例如:

   class RefExample        
        {
            static void Method(ref int i)
            {
                i=44;
            }
            static void Main()
            {
                int val=0;
                Method(ref val);//val is now 44
            }
        }

传递到ref参数的参数必须最先初始化。这与 out 不同,out 的参数在传递之前不需要显式初始化。尽管ref和out在运行时的处理方式不同,但它们在编译时的处理方式是相同的。因此,如果一个方法采用ref参数,而另一个方法采用out 参数,则无法重载这两个方法。
注意:属性不是变量,因此不能作为ref参数传递。
ref和out两个参数的不同在于:
1、ref传进去的参数必须在调用前初始化,out不必,即:

  int i;        
  SomeMethod(ref i);//语法错误
  SomeMethod(out i);//通过

2、ref传进去的参数在函数内部可以直接使用,而out不可:

   public void SomeMethod(ref int i)        
        {
            int j=i;//通过
            //...
        }
        public void SomeMethod(out int i)
        {
            int j=i;//语法错误
        }

3、ref传进去的参数在函数内部可以不被修改,但out必须在离开函数体前进行赋值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值