params,out,ref的使用

params:

以数组的方式传递多个参数,在params前可以定义非params的参数,但其后不能再定义参数。

如:

    class Class2
    {
        Class1 class1;
        int nNum, nCount;
        //public Class2(int a ,params int[] pars, int b)                    //错误,不能再pars之后在定义参数,但可以再pars前定义参数,即a 

        public Class2(int a ,params int[] pars)                               // 正确
        {
            this.class1 = new Class1();
            foreach (int i in pars)
            {
                nNum = i;
            }
        }
    }

ref和out:

相同:都是引用传值,即参数在被传递到另一个方法中发生变化后保持这种变化。

区别:

1.ref的变量在使用前需初始化,而out的变量在使用前可定义即可(也可初始化)

2.在调用的方法里ref的变量可以不进行修改,而out的变量必须进行变更。

3.如果两个方法唯一的区别是:一个接受 ref 参数,另一个接受 out 参数,则无法重载这两个方法。

4.如果一个方法采用 refout 参数,而另一个方法不采用这两类参数,则可以进行重载。

如:

strig

string surname = "t",                                         // srtname 在change方法中是ref的方式传值,必须初始化

          fullname="  ";                                          // fullname在change方法中是out的方式传值,可以初始化也可以只定义
this.change(ref surname, out fullname);

public void change(ref string refValue,out string  ouValue)
        {
            refValue = "tong";                                  //srtname 在change方法中是ref的方式传值,可以对其变更,也可以不对其操作
            ouValue = "zhengwei";                         // fullname在change方法中是out的方式传值,在调用的方法中必须对其进行变更和修改
        }

public void change(string refValue,out string  ouValue)              //因为该方法参数与上个change方法不一致,没有ref,所以可以重载

        {
            refValue = "tong";                                             

           ouValue = "zhengwei";                                

         }

public void change(out string refValue,out string  ouValue)              虽然该方法参数与第一个change方法不一致,即ref换成out,但是不可以重载,

        {
            refValue = "tong";                                             

           ouValue = "zhengwei";                                

         }

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值