参数数组(params)的用法

Posted Blogger

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了参数数组(params)的用法相关的知识,希望对你有一定的参考价值。

使用参数数组的注意事项:
1. 只能在一维数组上使用params关键字。
2. 不能重载一个只基于params关键字的方法。params关键字不构成方法的签名的一部分。
如:
//编译时错误:重复访问
public static int Min(int [] paramList)
.............
public static int Min(params int [] paramList)
.............
3. 不允许ref或out params数组
//编译时错误
public static int Min(ref params int [] paramList)
.............
public static int Min(out params int [] paramList)
.............
4. params 数组必须是方法的最后一个参数(也就是只能有一个params数组参数)
public static int Min(params int [] paramList,int i)
.............
5. 编译器会检查并拒绝任何可能有歧义的重载
6. 非params方法总是优先于一个params方法。也就是说,如果愿意,仍然可以为普通情况创建一个方法的重载版本,

如:
 public static int Min(int leftHandSide,int rightHandSide)
优于:
    public static int Min(params int [] paramList)

using System;
public class MyClass {
        public static void UseParams(params int[] list) {
            for (int i = 0; i < list.Length; i++) {
                 Console.WriteLine(list[i]);
                }
             Console.WriteLine();
             }

         public static void UseParams2(params object[] list) {
             for (int i = 0; i < list.Length; i++) {
                Console.WriteLine(list[i]);
                }
             Console.WriteLine();
            }

            static void Main() {
                UseParams(1, 2, 3);
                 UseParams2(1, 'a', "test");
                 An array of objects can also be passed, as long as
                the array type matches the method being called.
                 int[] myarray = new int[3] { 10, 11, 12 };
                 UseParams(myarray);
            }
}

    程序的输出结果如下:
1
2
3

1
a
test

10
11
12

 

以上是关于参数数组(params)的用法的主要内容,如果未能解决你的问题,请参考以下文章

C# params的用法详解

params修饰符的用法

javascript常用代码片段

C# 用params定义一维参数数组

out ref 和 params 的区别和用法

使 PHP 代码更加简洁的几个小技巧