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时,最好有是否为空的判断,否则会引发空指针异常。
  • 相关阅读:
    吞吐量(TPS)、QPS、并发数、响应时间(RT)
    吞吐量(TPS)、QPS、并发数、响应时间(RT)
    ubuntu 14.04安装pycharm 社区版
    ubuntu 14.04安装pycharm 社区版
    卷积神经网络(4)----目标检测
    卷积神经网络(4)----目标检测
    卷积神经网络(4)----目标检测
    如何搭建自己CDN服务器
    flask
    s16 计算机网络基础
  • 原文地址:https://www.cnblogs.com/wing011203/p/1277399.html
Copyright © 2011-2022 走看看