zoukankan      html  css  js  c++  java
  • C# 中的变参

            C#中的方法需要一个明确的方法签名,签名包括以下内容:返回类型、方法名称和参数列表。有时也包括访问限制符。

            签名中的参数列表中的参数数目包括固定和不固定两种类型,数目固定的情况是我们经常见到的,不固定的则是很少见的。

            例如,当我们需要实现一个整数加法的时候,可能首先想到的是下面的形式:

    Code

            这种方法在大部分的情况下是可以满足我们的需要的,但是如果我们想要一个不止两个整数相加的方法,而是很多个整数相加的,我们可以改写成这种形式:

    Code

            这种实现形式应该满足了我们新的需要了,它可以计算多个整数相加的情况。那么如何去调用这个方法呢?如下:

               

    Code

             这是没有问题的,但是我们总是看着不太习惯,因为当我们去做多个整数相加时,首先要把它们放到一个数组中,这就表明作为服务的提供者,它封装的不是很好。为了改进这个缺点,我们进行如下改动:

               

    Code

          和上一个版本相比,基本上没有变化,只是把参数列表中的int[] values 变为params int[] values。这时,我们看一下如何调用这个方法呢?如下:

               

    Code

            这时,基本上满足我们调用的习惯了。

            Params关键字就是c#中对于变参方法中使用的关键字,它是

    System.ParamArrayAttribute特性的缩写。所以上面的方法声明可以改成这样:

               

    Code

            使用params时需要注意的事项:

    1. 只有方法最后的一个参数才可以使用params关键字,参数类型不限。
    2. 给变参传递一个null或者0长的数组都是合法的,但是当传null时,最好有是否为空的判断,否则会引发空指针异常。
  • 相关阅读:
    吴恩达-coursera-机器学习-week7
    吴恩达-coursera-机器学习-week4
    吴恩达-coursera-机器学习-week3
    吴恩达-coursera-机器学习-week2
    吴恩达-coursera-机器学习-week1
    Sqlserver实现故障转移 — 故障转移群集仲裁之DFS共享文件夹仲裁
    Sqlserver实现故障转移 — 辅助域控
    Sqlserver 查询数据库连接数
    Unable to preventDefault inside passive event listener
    记:倍福(CP2611 Control Panel)了解
  • 原文地址:https://www.cnblogs.com/wing011203/p/1277399.html
Copyright © 2011-2022 走看看