为什么要使用 params 关键字?

361

我知道这是一个基础问题,但我找不到答案。

为什么要使用它?如果您编写一个使用它的函数或方法,并且在删除它时代码仍然可以完美地工作,与没有使用它时效果一样。例如:

使用参数:

static public int addTwoEach(params int[] args)
{
    int sum = 0;
    foreach (var item in args)
        sum += item + 2;
    return sum;
}

没有参数:

static public int addTwoEach(int[] args)
{
    int sum = 0;
    foreach (var item in args)
       sum += item + 2;
    return sum;
}

66
这个方法的代码本身仍将完美运行……但是调用该方法的代码可能不会。 - Jon Skeet
8
参数关键字表示可以选择性地传递给方法的参数。没有参数关键字的数组意味着您必须向该方法传递数组参数。 - Ailayna Entarria
Python语言通过在参数前加星号(*)实现了与此处所提到的相同的概念,非常优雅。具体请参考此处 - RBT
11个回答

0

另一个例子

public IEnumerable<string> Tokenize(params string[] words)
{
  ...
}

var items = Tokenize(product.Name, product.FullName, product.Xyz)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接