c#高级参数关键字out、ref、params
2018-01-30 12:24
351 查看
前言
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);
}
相关文章推荐
- 用MSIL剥开C#的外衣(一):方法参数ref、out、params和lock、for和foreach关键字
- C# 参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out
- C#方法的参数关键字:ref、out、params
- C#之高级参数 ref,out,params的使用
- C# 参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out 引用-http://www.cnblogs.com/hunts/archive/2007/01/13/619620.html
- 浅谈c#的三个高级参数ref out 和Params
- C# 参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out
- (C#)方法参数关键字:ref、out、params详解
- C# 参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out
- (C#)方法参数关键字:ref、out、params详解
- C# 参考之方法参数关键字:params、ref及out
- C# 方法参数关键字:params、ref及out
- c#中参数关键字params、ref、out