A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张俊双 中级黑马   /  2012-10-19 13:43  /  2320 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

params怎么用的,和普通参数有什么区别?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

3 个回复

倒序浏览
老师视频里有详解啊...
回复 使用道具 举报


关于params关键字的用法,需要注意以下几点:
1. params只能用于一维数组,不能用于多维数组和诸如ArrayList、List<T>等任何类似于数组的集合类型。
2. 被加上params关键字的形参,必须是形参列表中最后一个形参,并且方法声明中只允许一个 params 关键字。
3. 用params关键字的方法,有三种调用形式:
第一种,列举出数组各元素:Sum(1,2,3),这也是最常用的形式;
第二种,像没有加params关键字的数组形参那样,用数组名做实参:Sum(new int[]{1,2,3})或int n=new int[]{1,2,3};Sum(n);;
第三种,加params关键字的参数在调用时可以省略:Sum();//返回0;这种方式有时可以少定义一个方法重载,但当明确定义了重载int Sum()时,编译器会优先调用int Sum(),而不是Sum(params int[] values)。而且省略params型参数,方法内部仍会new一个元素个数为0的数组,效率略查。
第四种,不省略params型参数,用null代替,效率比第三种略高,因为其内部不会new这个数组。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
C#允许为函数指定一个(只能指定一个)特定的参数,这个参数必须是函数定义中的最后一个参数,称为参数数组.参数数组可以使用个数不定的参数调用函数,可以使用params关键字定义它们.参数数组可以简化代码,因为不必从调用代码中传递数组,而是传递同类型的几个参数,这些参数放在可在函数中使用的一个数组中.
例如:
  1. static int SumVals(params int[] vals)
  2. {
  3.     int sum = 0;
  4.     foreach(int val in vals)
  5.     {
  6.         sum += val;
  7.     }
  8.     return sum;
  9. }
  10. static void Main(string[] args)
  11. {
  12.     int sum = SumVals(1,4,35,-3,6);
  13.     Console.WriteLine("该数组的和为{0}.",sum);
  14.     Console.ReadKey();
  15. }
复制代码
这个函数对vals数组中的值进行迭代,再把这些值加在一起,返回其结果.在Main()中,这5个整型参数调用函数SumVals(): int sum = SumVals(1,4,35,-3,6);
也可以用0,1,2,或者100个整型参数来调用这个函数,当然这些参数的数量不受限制.

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马