• .net prams关键字


    先举个例子:

    代码如下:

    class Program
    {
    static void Main(string[] args)
    {
    Console.WriteLine(Sum(1));
    Console.WriteLine(Sum(1, 2, 3));
    Console.WriteLine(Sum(1, 2, 3, 4, 5));
    Console.ReadKey();
    }
    private static int Sum(params int[] values)
    {
    int sum = 0;
    foreach (int value in values)
    sum += value;
    return sum;
    }
    }
    实现了一个Sum方法,用于接收一组整数,并返回它们的和。参数values被加上params关键字后,在调用时可以在实参列表中列举出这组整数中的每个元素,非常方便。

    关于params关键字的用法,需要注意以下几点:
    1. params只能用于一维数组,不能用于多维数组和诸如ArrayList、List等任何类似于数组的集合类型。
    2. 被加上params关键字的形参,必须是形参列表中最后一个形参,并且方法声明中只允许一个 params 关键字。
    3. 用params关键字的方法,有三种调用形式:

    第一种,列举出数组各元素:Sum(1,2,3),这也是最常用的形式;

    第二种,像没有加params关键字的数组形参那样,用数组名做实参:Sum(new int[]{1,2,3})或int n=new int[]{1,2,3};Sum(n);;

    第三种,加params关键字的参数在调用时可以省略:Sum();//返回0;这种方式有时可以少定义一个方法重载,但当明确定义了重载int Sum()时,编译器会优先调用int Sum(),而不是Sum(params int[] values)。而且省略params型参数,方法内部仍会new一个元素个数为0的数组,效率略查。

    第四种,不省略params型参数,用null代替,效率比第三种略高,因为其内部不会new这个数组。

  • 相关阅读:
    SpringBoot项目启动报错main ERROR appenders Appenders has no parameter that matches element Loggers main WARN No Loggers were configured, using default. Is the Loggers element missing?
    linux 查看用户列表命令
    Docker安装ES、Kibana、head、IK
    openssl test TLS connect to K8S
    IBM MQ 修改ssl cipher
    可视化vscode使用Plotly,绘制直方图
    可视化vscode安装pandas
    VUE(试水篇)
    MongoDB
    Docker 详细
  • 原文地址:https://www.cnblogs.com/xyzla/p/3162540.html
Copyright © 2020-2023  润新知