当前位置: 移动技术网 > IT编程>开发语言>.net > 用C#中的params关键字实现方法形参个数可变

用C#中的params关键字实现方法形参个数可变

2017年12月12日  | 移动技术网IT编程  | 我要评论

身份证号码带名字,淄博交警信息网,526799

例如,下面代码:
复制代码 代码如下:

class program
{
static void main(string[] args)
{
console.writeline(sum(1));
console.writeline(sum(1, 2, 3));
console.writeline(sum(1, 2, 3, 4, 5));
console.readkey();
}
private static int sum(params int[] values)
{
int sum = 0;
foreach (int value in values)
sum += value;
return sum;
}
}

实现了一个sum方法,用于接收一组整数,并返回它们的和。参数values被加上params关键字后,在调用时可以在实参列表中列举出这组整数中的每个元素,非常方便。
关于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这个数组。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网