C# 参数关键字params的作用
为了将方法声明为可以接受可变数量参数的方法,我们可以使用params关键字来声明数组,要求:
(1)在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。
(2)该参数必须标识一个一维数组,但类型不限,对该参数传递null或者0个数目的数组的引用都是合法的
示例1:
Console.WriteLine(IntAdd()); // 输出0
private static int IntAdd(params int[] values)
{
var sum = 0;
for (int i = 0; i < values.Length; i++)
{
sum += values[i];
}
return sum;
}
示例2:
DisplayTypes(new object(), new Random(), "string", 10);
//输出:
//System.Object
//System.Random
//System.String
//System.Int32
public static void DisplayTypes(params object[] objects)
{
foreach (var item in objects)
{
Console.WriteLine(item.GetType());
}
}
注意:对于可接受可变数量参数的方法的调用会对性能造成一定的损失,因为数组是在堆上分配的,数组的元素还得初始化,数组的内存还得被垃圾回收器回收
C# 参数关键字params的作用的更多相关文章
- 可变数目参数----关键字params的使用
如何定义和使用可变数目参数的方法,使用关键字params. 即其他语言的可变参数 Code public class App { static void Main() { //常规使用方法 Conso ...
- C#中的参数关键字params
class 参数 { public void doSome(string str,params int[] values){ ) { ; i < values.Length; i++) { Co ...
- C# 参考之方法参数关键字:params、ref及out
如果在为方法声明参数时未使用 ref 或 out,则该参数可以具有关联的值.可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值.通过使用方法参数关键字,可以更改这种行为. params ...
- C#中in,out,ref,params的作用和区别
ref和out的区别在C# 中,既可以通过值也可以通过引用传递参数.通过引用传递参数允许函数成员更改参数的值,并保持该更改.若要通过引用传递参数, 可使用ref或out关键字.ref和out这两个关键 ...
- out参数,ref参数,params参数数组
params参数数组 params关键字可以为方法指定数目可变的参数.params关键字修饰的参数,可以传入任意数目的同类型参数,甚至可以不传入参数. 不过params修饰的参数必须是方法的最后一个参 ...
- static 关键字有什么作用
static关键字的含义及使用场景 static是Java50个关键字之一.static关键字可以用来修饰代码块表示静态代码块,修饰成员变量表示全局静态成员变量,修饰方法表示静态方法.(注意:不能修饰 ...
- java中关键字volatile的作用
用在多线程,同步变量. 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B.只在某些动作时才进行A和B的同步.因此存在A和B不一致的情况.volatile就是用来 ...
- 深入解析Oracle 10g中SGA_MAX_SIZE和SGA_TARGET参数的区别和作用
原文链接:http://m.blog.csdn.net/blog/aaron8219/40037005 SGA_MAX_SIZE是从9i以来就有的作为设置SGA大小的一个参数,而SGA_TARGET则 ...
- 转!!java中关键字volatile的作用
用在多线程,同步变量. 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B.只在某些动作时才进行A和B的同步.因此存在A和B不一致的情况.volatile就是用来 ...
随机推荐
- git基础命令。
创建一个新的本地仓库 git init 克隆远程服务器 git clone URL 打开一个文件夹 cd 添加文件 git add . 本地提交更改 git commit -m ...
- git忽略相应文件夹,不上传
1.在项目根目录里 右键选择Git Bash 进入命令行 2. touch .gitignore ,生成“.gitignore”文件. 3. .gitignore文件里输入以下内容.DS_Stor ...
- LintCode2016年8月22日算法比赛----将数组重新排序以构造最小值
将数组重新排序以构造最小值 题目描述 给定一个整数数组,请将其重新排序,以构造最小值. 样例 给定[3,32,321],通过将数组重新排序,可构造6个可能性的数字: 3+32+321=332321 3 ...
- 命令行下运行 java someClass.class出现 “错误:找不到或无法加载主类someClass ” 的解决方案
假设在C:\Java\code\目录下建立了如下 Test.java文件: package code; public class Test { public static void main(Stri ...
- 微服务架构之spring cloud hystrix&hystrix dashboard
在前面介绍spring cloud feign中我们已经使用过hystrix,只是没有介绍,spring cloud hystrix在spring cloud中起到保护微服务的作用,不会让发生的异常无 ...
- SVN - Checksum mismatch while updating
Go to the folder with the file causing problems Execute command svn update --set-depth empty (note: ...
- Codeforces Round #419 A+B
A. Karen and Morning time limit per test 2 seconds memory limit per test 512 megabytes Karen is ...
- Delphi IDHTTP用法详解
一.IDHTTP的基本用法 IDHttp和WebBrowser一样,都可以实现抓取远端网页的功能,但是http方式更快.更节约资源,缺点是需要手动维护cook,连接等 IDHttp的创建,需要引入 ...
- django导入/导出原始数据
1.使用dumpdata命令导出指定app对应数据库中的数据: python manage.py dumpdata your_app --indent 4 > your_app/fixture ...
- [Vijos 1768] 顺序对的值
顺序对的值 描述 给定一个序列a,a中任意两个元素都不等.如果i<j,且a[i]<a[j],则我们称a[i],a[j]为一个顺序对,这个顺序对的值是指a[i+1],a[i+2]…….a[j ...