C# params可变数量参数
来源:互联网 发布:淘宝消字灵是真的么 编辑:程序博客网 时间:2024/05/22 00:35
为了将方法声明为可以接受可变数量参数的方法,我们可以使用params关键字来声明数组,如下所示:
public static Int32Add(params Int32[] values){ Int32 sum = 0; for (Int32 x = 0; x < values.Length; x++) { sum += values[x]; } return sum;}
只有方法的最后一个参数才可以标记params,该参数必须标识一个一维数组,但类型不限。对方法的最后一个参数传递null或者0个数目的数组的引用都是合法的,如下面代码调用上面Add方法,编译正常,运行正常,和期望一样结果为0:
public static void Main(){ Console.WriteLine(Add());}
下面看一下如何编写一个可以接受任意数量、任意类型的参数的方法,也就是把上面方法的Int32改成Object[]就可以了:
public static void Main(){ DisplayTypes(new Object(), new Random(), "string", 10);}public static void DisplayTypes(params Object[] objects){ foreach(Object o in objects) { Console.WriteLine(o.GetType()); }}
输出:
System.Object
System.Random
System.String
System.Int32
注意:
对于可接受可变数量参数的方法的调用会对性能造成一定的损失,因为数组是在堆上分配的,数组的元素还得初始化,数组的内存还得被垃圾回收器回收,为了减少这种没必要的性能损失,我们希望定义几个没有params关键字的重载方法,如System.String类的Concat方法,如下:
public static string Concat(object arg0);
public static string Concat(params object[] args);
public static string Concat(params string[] values);
public static string Concat(object arg0, object arg1);
public static string Concat(string str0, string str1);
public static string Concat(object arg0, object arg1, object arg2);
public static string Concat(string str0, string str1, string str2);
public static string Concat(object arg0, object arg1, object arg2, object arg3);
public static string Concat(string str0, string str1, string str2, string str3);
- C# params可变数量参数
- C#关于params的用法(使用数量可变的参数)
- C# 中 params 的使用 可变参数
- c# 之学习9 params 可变参数
- params关键字给方法传递可变数量的参数
- 可变数目参数 params
- Params可变参数
- params 长度可变参数
- params可变参数
- params可变参数
- C# out、ref、params、可变参数、命名参数详解
- C# 可变数量参数的使用
- C# 基础加强(一)可变参数params、索引器
- 可变数目参数:params关键字
- 可变参数Params代码实例
- 黑马程序员 Params可变参数
- C#中params 关键字可以指定在参数数目可变处采用参数的方法参数
- 应用C# 可变数量的参数,使Tabel 随意显示
- PAT B1061
- ButterKnife 8.+版本在AndroidStudio中的配置
- @RequestMapping用法详解之地址映射(转)
- MySQL 数据库安装教程
- ARC 065D Connectivity 并查集+map
- C# params可变数量参数
- PAT B1062
- confirm、prompt、 window.open
- 面试资料整理
- 异常处理之[Error: com.android.ide.common.process.ProcessException]
- ubuntu12.04 终端中文显示乱码
- idea maven
- PAT B1063
- ZOJ 2671 线段树 + 矩阵区间乘积