为什么要使用params关键字?

大师级

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

为什么要使用它?如果编写使用该函数的函数或方法,则将其删除时代码仍将完美运行,没有代码的情况下100%正常运行。例如:

有参数:

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;
}
康拉德·鲁道夫

随着params您可以这样调用您的方法:

addTwoEach(1, 2, 3, 4, 5);

没有params,您不能。

此外,在两种情况下,都可以使用数组作为参数来调用该方法

addTwoEach(new int[] { 1, 2, 3, 4, 5 });

也就是说,params允许您在调用方法时使用快捷方式。

无关的,您可以大大缩短您的方法:

public static int addTwoEach(params int[] args)
{
    return args.Sum() + 2 * args.Length;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么要使用“最终”关键字?

Python,为什么要使用elif关键字?

当我只能使用普通的IEnumerable时,为什么要使用yield关键字?

为什么需要使用 await 关键字来调用异步方法

为什么要使用“ typename”关键字进行以下定义?

为什么要使用extern关键字在命名空间范围内声明变量?

从具有常量构造函数的类创建对象时,为什么要使用 const 关键字?

为什么伯爵()方法使用“检查”的关键字?

为什么在Java中不使用const关键字?

为什么我必须使用向前引用“this”关键字?

为什么要在Java中使用`transient`关键字?

为什么我们使用volatile关键字?

为什么Switch语句仅使用true关键字?

为什么Java / Scala使用扩展/实现关键字?

为什么不能在此处使用'this'关键字?

为什么要避免使用最终关键字?

为什么在构造函数中使用此关键字

为什么在这里使用克隆关键字

为什么使用“ package”关键字和.h?

为什么在调用函数时使用`go`关键字?

为什么必须使用关键字“ this”代替类名?

为什么JSLint禁止使用“ this”关键字?

为什么IViewLocalizer无法使用关键字{0}?

为什么ReSharper建议使用“ as”关键字而不是“ is”?

为什么在Vue Project中使用“ get”关键字?

为什么在angular js中使用abstract关键字?

为什么“ of”不是JavaScript关键字?

为什么“ this”关键字也引用子类?

为什么Typescript为什么使用关键字“ export”来公开类和接口?