浅谈params修饰符

来源:互联网 发布:linux 域控制器 编辑:程序博客网 时间:2024/05/19 18:38

C#中,使用params关键字来支持参数数组的使用。params关键字可以把可变数量的相同类型的参数作为单个逻辑参数传递给方法、同样地,如果调用者为调用方法传入强类型数组或者以逗号分隔的参数项列表,params修饰符标记的参数就可以被处理。
为了更加直观,给出下面的例子,例子中,我们分别通过数组方式、参数项列表方式来调用求和函数。可以看到,传入零个参数时,也可以被处理。当以参数项列表方式调用方法时,.NET平台会自动地把这些参数项包装成同类型的数组。

class Program    {        static void Main(string[] args)        {            int sum;            int[] data = {1, 2, 3, 4, 5, 6};            sum = Add(data);            Console.WriteLine("sum = {0}\n", sum);            sum = Add(1, 2, 3, 4, 5, 6);            Console.WriteLine("sum = {0}\n", sum);            sum = Add();            Console.WriteLine("sum = {0}\n", sum);                    }                private static int Add(params int[] values)        {            Console.WriteLine("I received {0} int values", values.Length);            int sum = 0;            for(int i = 0; i < values.Length; i++)            {                sum += values[i];            }            return sum;        }    }

       

最后需要注意的是,C#为了避免歧义,要求方法最多只支持一个params参数,而且必须是参数列表中最后一个参数。
params关键字技术并没有提升C#的代码效率,只是为了调用者的方便,因为CLR还是需要在底层创建数组给予支持。

0 0