C#中使用params关键字跟使用params关键字的区别是什么?

 我来答
久落江边
推荐于2019-09-19 · TA获得超过1.6万个赞
知道小有建树答主
回答量:92
采纳率:94%
帮助的人:2.7万
展开全部
代码如下:

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这个数组。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式