不得不说,这是一个非常好用的参数。

不过在很多初级教材中我并没有看到它的身影

MSDN给出的介绍是

params 关键字可以指定在参数数目可变处采用参数的方法参数。

这么说可能很多人不理解

没有关系

看个例子就知道了

先看下MSDN的例子

​?​​View Code CSHARP


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34



// cs_params.cs

using System;

publicclass MyClass

{

 

    publicstaticvoid UseParams(paramsint[] list)

    {

        for (int i = 0 ; i < list.Length; i++)

        {

            Console.WriteLine(list[i]);

        }

        Console.WriteLine();

    }

 

    publicstaticvoid UseParams2(paramsobject[] list)

    {

        for (int i = 0 ; i < list.Length; i++)

        {

            Console.WriteLine(list[i]);

        }

        Console.WriteLine();

    }

 

    staticvoid Main()

    {

        UseParams(1, 2, 3);

        UseParams2(1, '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[3] {10,11,12};

        UseParams(myarray);

    }

}


上面的代码运行后将会输出

1

2

3

1

a

test

10

11

12

或许大家觉得没什么用

那么举个常用的例子

我们要做删除和批量产出功能

那么会产生Delete(int id)和Delete(int[] ids)这两个方法

但是有了params就大可不必

只要一个Delete(params int[] ids)

就可以了

调用时

删一个就Delete(id)

多个就Delete(ids)

是不是很方便