c#高级参数关键字out、ref、params

前言

    c#有三种高级参数out,ref,params,他们各自有各自的作用。


params

    可变参数,params后面必须跟数组,之后不允许任何其他的参数,并且在方法中只允许有一个params关键字。例如:

 public static int add(params int[] numbers)
        {
            int sum = 0;
            foreach(int i in numbers)
            {
                sum = sum + i;
            }
            return sum;
        }

out

    主要用作程序的输出函数,与之对应的还有in函数,当然是程序的输入函数。

    out关键字为引用类型,方法参数上的out方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调方法时,在方法中对参数所做的任何更改都将放映到该变量中。

public static void add(out int i)
        {
            i = 0;
            i++;
        }

ref

   引用参数,同样为引用类型。

 public static void add(ref int i)
        {
            i++;
        }

其实,out和ref没有什么本质上的区别,但从代码上可以看出

1.用out关键字修饰的参数必须在方法内初始化,并且out可以返回多个值。

2.用ref关键字修饰的关键字需要在使用前先初始化。


实践应用

   项目中需要分页查询,表格右下端需要显示总条数的,但是由于使用的是真分页,每次的sql查询只是查询特定范围之间的,所以需要一个参数代表总条数,符合输出参数和引用类型的特点,于是使用out关键字。下述代码为D层代码,仅供参考:

 public List<VM_OutGoodsLog> goodsOnOut(VM_OutGoodsLog vmGoodsOnOut, int pageCount, int pageSize, out int total)
        {
            //设置分页开始记录和结果记录
            int begin = (pageSize - 1) * pageCount;

            string sql = "select * from t_item";

            string sqldt = sql + " limit " + begin + "," + pageCount;
            DataTable dt = MySQLHelper.ExecuteDataTable(sqldt);
            DataTable dtCount = MySQLHelper.ExecuteDataTable(sql);
            List<VM_OutGoodsLog> listCount = DatatableToList.ConvertToList<VM_OutGoodsLog>(dtCount);
            total = listCount.Count;

            return DatatableToList.ConvertToList<VM_OutGoodsLog>(dt);
        }

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值