zoukankan      html  css  js  c++  java
  • 方法可变数量的参数


    声明一个可变数量的参数:

    Static int Add(params int[] values)
    {
        int sum = 0;
        if(value != null)
        {
            for(int x = 0;x<values.Length;x++)
                sum += values[x];
        }
        return sum;
    }

    上面这个方法除去params,是一个普通的方法,接受int数组,返回组中的所以项之和。

    我们可以这样调用:Add(new int[]{1,2,3});

    但是阅读性不是很高,我们希望能更简洁:

    Add(1,2,3);

    这时,由于params关键字,是可以编译通过和运行的。

    params只能应用于方法参数中的最后一个。

    在c#编译器发现Add(1,2,3)时,会先寻找是否有Add(int i,int j,int k)匹配的方法,

    如果有就调用,没有,就寻找是否有定义为Add(params int[] values)的方法,

    如果有就把1、2、3先保存到一个数组里,然后调用Add(int[] values)方法。

    这里也说明CLR对params关键字是一无所知的,params只是提供给c#编译器使用的。

  • 相关阅读:
    铺地毯
    解方程
    引水入城
    10.16今日暂时停更博客
    聪明的质监员
    CCF NOI plus 201(7)6 初赛题 解题报告
    初赛可能会用到的计算机基础理论知识整理
    火柴排队
    借教室
    10.10今日暂时停更博客
  • 原文地址:https://www.cnblogs.com/lmfeng/p/2731075.html
Copyright © 2011-2022 走看看