参数数组(params)的用法
使用参数数组的注意事项:
1. 只能在一维数组上使用params关键字。
2. 不能重载一个只基于params关键字的方法。params关键字不构成方法的签名的一部分。
如:
//编译时错误:重复访问
public static int Min(int [] paramList)
.............
public static int Min(params int [] paramList)
.............
3. 不允许ref或out params数组
//编译时错误
public static int Min(ref params int [] paramList)
.............
public static int Min(out params int [] paramList)
.............
4. params 数组必须是方法的最后一个参数(也就是只能有一个params数组参数)
public static int Min(params int [] paramList,int i)
.............
5. 编译器会检查并拒绝任何可能有歧义的重载
6. 非params方法总是优先于一个params方法。也就是说,如果愿意,仍然可以为普通情况创建一个方法的重载版本,
如:
public static int Min(int leftHandSide,int rightHandSide)
优于:
public static int Min(params int [] paramList) using System;
public class MyClass {
public static void UseParams(params int[] list) {
for (int i = ; i < list.Length; i++) {
Console.WriteLine(list[i]);
}
Console.WriteLine();
} public static void UseParams2(params object[] list) {
for (int i = ; i < list.Length; i++) {
Console.WriteLine(list[i]);
}
Console.WriteLine();
} static void Main() {
UseParams(, , );
UseParams2(, &#;a&#;, "test");
An array of objects can also be passed, as long as
the array type matches the method being called.
int[] myarray = new int[] { , , };
UseParams(myarray);
}
} 程序的输出结果如下: a
test
参数数组(params)的用法的更多相关文章
- 函数,参数数组params与数组参数,结构函数
1.函数 static 返回值类型 函数名(形参1,形参2,...){ 函数体; return 返回值; } 无返回值,则static void 函数名(){ } stat ...
- C# - 参数数组Params
参数数组可以使用个数不定的参数调用函数,此时用params关键字定义它们. 限制:必须是函数定义中的最后一个参数:必须是同一类型的. 优点:不用在调用代码中传入数组,指定参数个数不受限制,可以不指定该 ...
- out参数,ref参数,params参数数组
params参数数组 params关键字可以为方法指定数目可变的参数.params关键字修饰的参数,可以传入任意数目的同类型参数,甚至可以不传入参数. 不过params修饰的参数必须是方法的最后一个参 ...
- C#参数数组的用法1
C# 参数数组 有时,当声明一个方法时,您不能确定要传递给函数作为参数的参数数目.C# 参数数组解决了这个问题,参数数组通常用于传递未知数量的参数给函数. params 关键字 在使用数组作为形参时, ...
- C#方法的六种参数,值参数、引用参数、输出参数、参数数组、命名参数、可选参数
方法的参数有六种,分别是值参数.引用参数.输出参数.参数数组.命名参数.可选参数. 值参数 值参数是方法的默认类型,通过复制实参的值到形参的方式把数据传递到方法,方法被调用时,系统作两步操作: 在栈中 ...
- C#可选参数、命名参数、参数数组
学习了C#4.0的新特性:可选参数.命名参数.参数数组. 1.可选参数,是指给方法的特定参数指定默认值,在调用方法时可以省略掉这些参数. 但要注意: (1)可选参数不能为参数列表的第1个参数,必须位于 ...
- LoadRunner参数数组
参数数组提供了对一类参数集中存放的机制,其中LR内置的几个函数有:lr_paramarr_idx().lr_paramarr_len().lr_paramarr_random() 同时参数数组必须满足 ...
- 利用Apply的参数数组化来提高代码的优雅性,及高效性
利用Apply的参数数组化来提高代码的优雅性,及高效性 Function.apply()在提升程序性能方面的技巧 我们先从Math.max()函数说起,Math.max后面可以接任意个参数,最后返回所 ...
- c#定义一个方法,根据存储过程名称和存储过程参数数组,执行对应的存储过程
定义一个根据存储过程名称和存储过程参数数组,执行对应的存储过程的方法.用SqlParameter[]代替存储过程需要的参数.这样就不用为每一个存储过程写一个方法了 1.首先定义一个ExcuteProc ...
随机推荐
- Educational Codeforces Round 9 A. Grandma Laura and Apples 水题
A. Grandma Laura and Apples 题目连接: http://www.codeforces.com/contest/632/problem/A Description Grandm ...
- java访问ad域
1.活动目录(AD) Active Directory 是用于 Windows Server 的目录服务.它存储着网络上各种对象的有关信息,并使该信息易于管理员和用户查找及使用.Active Dire ...
- php类库安装xml simplexml
问题 报错:Call to undefined function dom_import_simplexml() yum install php-dom service restart httpd 参考 ...
- Android内存优化6 了解Android是如何管理App内存
1, Dalvik & ART Android在4.4之前一直使用的Dalvik虚拟机作为App的运行VM的, 4.4中引入了ART作为开发者备选, 5.0起正式将ART作为默认VM了. 我们 ...
- jquery-qrcode 生成和读取二维码
首先要导入jar包(生成二维码的jar和读取二维码的jar) 生成二维码: package com.imooc.qrcode; import java.awt.Color; import java.a ...
- 关于Android架构那些事
刚开始,因为业务比较赶,我们也没有进行比较好的顶层设计,对代码的要求也是最低要求——完成功能开发就行了.这种短期设计也就造成了我们代码的扩展性几乎为零,稍微添加一点新功能,都要大动干戈.在后台系统架构 ...
- kafka 学习之初体验
学习问题: 1.kafka是否需要zookeeper?2.kafka是什么?3.kafka包含哪些概念?4.如何模拟客户端发送.接受消息初步测试?(kafka安装步骤)5.kafka cluster怎 ...
- [转]SQL Server表分区
本文转自:http://www.cnblogs.com/knowledgesea/p/3696912.html 什么是表分区 一般情况下,我们建立数据库表时,表数据都存放在一个文件里. 但是如果是分区 ...
- SaltStack–Job管理
官方文档:https://docs.saltstack.com/en/2016.11/ref/modules/all/salt.modules.saltutil.html 在SaltStack里面执行 ...
- python scikit-learn选择正确估算器
下图摘自官方文档 链接 http://scikit-learn.org/stable/tutorial/machine_learning_map/index.html