c# 方法可变数量的参数
2012-10-29 13:40
841 查看
声明一个可变数量的参数:
复制代码 代码如下:
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#编译器使用的。
复制代码 代码如下:
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#编译器使用的。
相关文章推荐
- C# 向方法传递可变数量的参数
- C#方法重载-基于不同数量的参数的方法重载
- 5.5 参数数量可变的方法
- 使用未公开关键字在 C# 中导入外部 printf 等参数数量可变函数 [1] CLR 支持
- 通过反射机制创建一个构造方法中参数数量可变的对象
- 方法可变数量的参数
- C#方法重载-基于不同数量的参数的方法重载
- 使用未公开关键字在 C# 中导入外部 printf 等参数数量可变函数 [2] C# 实现
- C#方法的重载和方法的可变参数
- C#实现可变数量参数,像printf那样
- C# 中的可变参数方法(VarArgs)
- 使用未公开关键字在 C# 中导入外部 printf 等参数数量可变函数 [1] CLR 支持
- params关键字给方法传递可变数量的参数
- C# 可变数量参数的使用
- 对象包装器与自动(拆箱)装箱+参数数量可变的方法+枚举类
- C# params可变数量参数
- 使用未公开关键字在 C# 中导入外部 printf 等参数数量可变函数 [2] C# 实现
- Java:参数数量可变的方法
- 【Java学习笔记】参数数量可变的方法
- 《CLR Via C# 第3版》笔记之(十) - 可选参数和可变数量参数