灵活而又可怕的params参数数组
某日,我们一项目重构,不小心为一个类增加了一个Delete(string key)的方法,编译通过,初看无恙,但一执行起来就不是那么回事了,仔细一查,才知道,类中有一个同名的重载方法,参数为一个params参数数组,难道是它作祟?
Msdn一下,果然如此:参考资料:params(C# 参考)http://msdn.microsoft.com/zh-cn/library/w5zay9db(v=VS.100).aspx
也就是它可以接受如下代码里的各种参数,真是太灵活了,像个黑洞,有点可怕。
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
LzdTools.Test("aaa");
LzdTools.Test("aaa", "bbb");
LzdTools.Test("aaa", "bbb", "ccc");
string[] arr = { "ddd", "eee", "fff" };
LzdTools.Test(arr);
Console.ReadKey();
}
}
public static class LzdTools
{
public static void Test(params string[] v)
{
if (v.Length > 0)
Console.WriteLine(v[0]);
if (v.Length > 1)
Console.WriteLine(v[1]);
if (v.Length > 2)
Console.WriteLine(v[2]);
if (v.Length > 3)
Console.WriteLine(v[3]);
}
}
}
转载于:https://www.cnblogs.com/liuzhendong/archive/2012/01/10/2318271.html
灵活而又可怕的params参数数组相关推荐
- 参数数组(params)的用法
使用参数数组的注意事项: 1. 只能在一维数组上使用params关键字. 2. 不能重载一个只基于params关键字的方法.params关键字不构成方法的签名的一部分. 如: //编译时错误:重复访问 ...
- 函数,参数数组params与数组参数,结构函数
1.函数 static 返回值类型 函数名(形参1,形参2,...){ 函数体; return 返回值; } 无返回值,则static void 函数名(){ } stat ...
- C#可选参数、命名参数、参数数组
学习了C#4.0的新特性:可选参数.命名参数.参数数组. 1.可选参数,是指给方法的特定参数指定默认值,在调用方法时可以省略掉这些参数. 但要注意: (1)可选参数不能为参数列表的第1个参数,必须位于 ...
- c#---params参数
写一个方法,求一个同学的总成绩 static void Main(string[] args){int[] n = { 99, 88, 77 };Test("张三", n);Con ...
- C#方法的六种参数,值参数、引用参数、输出参数、参数数组、命名参数、可选参数...
方法的参数有六种,分别是值参数.引用参数.输出参数.参数数组.命名参数.可选参数. 值参数 值参数是方法的默认类型,通过复制实参的值到形参的方式把数据传递到方法,方法被调用时,系统作两步操作: 在栈中 ...
- C#交错数组和参数数组
交错数组 交错数组的声明和初始化 int[][] array ; 声明交错数组array = new int[n][] ; 创建一个包含n个元素的交错数组,交错数组的元素就是一维数组array[0] ...
- 【C 语言】结构体 ( 结构体 数组 作为函数参数 | 数组 在 堆内存创建 )
文章目录 一.结构体 数组 作为函数参数 ( 数组 在 堆内存创建 ) 二.完整代码示例 一.结构体 数组 作为函数参数 ( 数组 在 堆内存创建 ) 在上一篇博客 [C 语言]结构体 ( 结构体 数 ...
- params参数的调用
namespace params参数的用法 {class Program{public static void Test(string name,params int[] score){int sum ...
- 利用Apply的参数数组化来提高代码的优雅性,及高效性
利用Apply的参数数组化来提高代码的优雅性,及高效性 Function.apply()在提升程序性能方面的技巧 我们先从Math.max()函数说起,Math.max后面可以接任意个参数,最后返回所 ...
最新文章
- windows十大必禁服务
- python量化交易书_Python量化交易
- flock文件锁的学习和应用
- 数量和/或“交货结束”指示符或最终发货指示符丢失
- android studio 项目迁移 gradle 不对导致的卡住解决方法
- 面试官又整新活,居然问我for循环用i++和++i哪个效率高?
- Python学习笔记:演示多根继承
- sql server 2014 判断一个列某个字段是否相同_Select * from user的千层套路——一个sql是如何执行的...
- 一个小技巧让你轻松处理Selenium处理滚动条和元素聚焦
- Maven实战(六)依赖
- 2008年日历带农历_头条文章--Excel中带农历的万年历设计方法一
- jdbc连接mysql数据库 工作流程_jdbc连接数据库流程图
- 华硕M2A-VM+AMD4000超频方法
- android studio for android learning (六)应用程序窗体显示状态操作(requestWindowFeature等的应用)
- 图像处理——同态滤波
- Java中常见异常及异常处理方式
- keras 的dot、multiply区别
- 归并排序+快排+快速选择+桶排序
- php踩过的那些坑(2) strpos引发的血案
- 专科计算机课程作业2理解题,计算机第二模块练习题