c# params 关键字

摘自:http://blog.csdn.net/winscar/article/details/6312790

param关键字的实质是:param是定制特性ParamArrayAttribute的缩写,该特性用于指示编译器的执行过程大概可以简化为: 编译器检测到方法调用的时候,首先调用不包含ParamArrayAttribute特性的方法,如果存在这种方法就施行调用,如果不存在才调用含有 ParamArrayAttribute特性的方法,同时应用方法中的元素来填充一个数组,同时将该数组作为参数传入调用方法。总之就是param就是提 示编译器实现对参数进行数组封装,将可变数目的控制由编译器来完成,我们可以方便的从以下示例中得到:

  static void ShowAgeSum(string team,params int[] args){}

  调用时候可以是如下的情况:

  ShowAgeSum("TEAM",1,2,3);        int[] args = new int[]{1,2,3};

  ShowAgeSum("TEAM",1,2,3,4,5); ……    int[] args = new int[]{1,2,3,4,5};

  针对以上的情况,编译器会对后边的各数字进行数组封装。

 

  同时有以下一些特别需要注意的部分:

  1.param修饰的参数必须为一维数组,事实上通常是以集群方式来实现多个或者任意多个参数的控制,所以数组为最简单的选择;

  2.param修饰的参数数组可以是任意类型的,如果需要接收任意类型的参数,只要将数组类型定为object即可;

  3.param必须是参数列表的最后一个,并且只能使用一次。

     4、上面 ShowAgeSum可接受为空参数,如 ShowAgeSum().

posted @ 2013-10-16 09:59  nygfcn  阅读(149)  评论(0编辑  收藏  举报