某日,我们一项目重构,不小心为一个类增加了一个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]);
}
}
}