欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

c# 方法可变数量的参数

程序员文章站 2023-12-03 15:32:10
声明一个可变数量的参数: 复制代码 代码如下: static int add(params int[] values) { int sum = 0; if(value !=...
声明一个可变数量的参数:
复制代码 代码如下:

static int add(params int[] values)
{
int sum = 0;
if(value != null)
{
for(int x = 0;x<values.length;x++)
sum += values[x];
}
return sum;
}

上面这个方法除去params,是一个普通的方法,接受int数组,返回组中的所以项之和。

我们可以这样调用:add(new int[]{1,2,3});

但是阅读性不是很高,我们希望能更简洁:

add(1,2,3);

这时,由于params关键字,是可以编译通过和运行的。

params只能应用于方法参数中的最后一个。

在c#编译器发现add(1,2,3)时,会先寻找是否有add(int i,int j,int k)匹配的方法,
如果有就调用,没有,就寻找是否有定义为add(params int[] values)的方法,

如果有就把1、2、3先保存到一个数组里,然后调用add(int[] values)方法。
这里也说明clr对params关键字是一无所知的,params只是提供给c#编译器使用的。