首页 > 灵活而又可怕的params参数数组

灵活而又可怕的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

更多相关: