zoukankan      html  css  js  c++  java
  • 浅谈.net中的params关键字

    先举个例子:

    代码如下:

    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这个数组。

  • 相关阅读:
    【C# 调用 Go 语言】
    Go语言多线程 (转)
    CodeSoft 2019 企业版打标签
    (转)FFT求频谱图和功率谱密度图
    使用NI-DAQmx进行振动数据采集
    CentOS7 安装配置笔记
    .net 调用 nsfwjs 进行视频鉴别
    Electron.Net + Linux + Blazor 初尝备忘录
    关于feign调用的时候,动态传url ,以及自定义head
    go使用excelize导出xls
  • 原文地址:https://www.cnblogs.com/gjhjoy/p/3573330.html
Copyright © 2011-2022 走看看