Asp.net中params的使用

本文导读:Asp.net中params关键字可以指定采用数目可变的参数的方法参数,可以发送参数声明中所指定类型的逗号分隔的参数列表或指定类型的参数数组,还可以不发送参数。这样就可以在方法形参列表中,数组类型的参数前加params关键字,在调用方法时使代码更加精练。

 

一、params关键字介绍

 

ASP.NET中 params 是关键字,可以指定在参数数目可变处采用参数的方法参数。在函数的参数数目可变而执行的代码差异很小的时候很有用!

 

在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。

 

关于参数数组,需掌握以下几点

 

(1)若形参表中含一个参数数组,则该参数数组必须位于形参列表的最后;

(2)参数数组必须是一维数组;

(3)不允许将params修饰符与ref和out修饰符组合起来使用;

 

(4)与参数数组对应的实参可以是同一类型的数组名,也可以是任意多个与该数组的元素属于同一类型的变量;

(5)若实参是数组则按引用传递,若实参是变量或表达式则按值传递。

 

(6)用法:可变的方法参数,也称数组型参数,适合于方法的参数个数不知的情况,用于传递大量的数组集合参数;当使用数组参数时,可通过使用params关键字在形参表中指定多种方法参数,并在方法的参数表中指定一个数组。

 

形式为

 

方法修饰符 返回类型 方法名(params 类型[] 变量名)

{

方法体

}

 

 

二、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<T>等任何类似于数组的集合类型。 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这个数组。