params简介

params:

使用方式:void IsParams(params object[] arr)

说明:params修饰符主要解决形式参数是一个数组,且内容不确定的情况,params修饰符必须在()中的形参中排在最后,且不能和ref、out共用。

举例:

class CodeFile1:Class1
    {
        static void UseParams(params object[] list)
        {
            for (int i = 0; i < list.Length ; i++)
            {
                Console.WriteLine(list[i]);
            }
        }
        public static void Main()
        {
            object[] ass=new object[3]{1,2,4};
            UseParams(ass);
            UseParams(3);
            Console.ReadKey();
        }

        
    }

输出结果是:1

                 2

                 4

                 3

作用:

         params关键字可以让被修饰的参数可以有任意个,只对数组,且参数必须要是最后一个参数,比如:

         void Test(params int[] ass) {。。。。 }

         当我们用这个方法时可以灵活成以下几种情况:

         Test();--为空

         Test(1);--只有一个参数

         Test(1, 2);--多个参数

         Test(new int[] { 1, 2, 3 });--数组参数

         相反,如果我们没有加params修饰符,写成void Test(int[] ass)时,我们调用Test方法只能Test(new int[]{1,2,3});或者Test(null);(这里不能写成Test(),必须写成null)。

拓展:

1.当我们将Test方法改写成 :

void Test(int j,params int[] ass)
{
  for(int i=0;i<ass.Length;i++)
  {
    Console.WriteLine((int)ass[i]+j);
   }
}

 

  我们调用Test(1,2,3);会输出什么?
 

  输出结果:3

                 4

 

2.  当我们将params后面的参数换成List<T>泛型集合后又是什么样子呢?

      

void Test(int j,params List<int> ass)//报错,必须为一维数组
{
  for(int i=0;i<ass.Count;i++)
  {
    Console.WriteLine((ass[i]+j);
   }
}

       

posted @ 2013-05-08 10:41  白菜帮子  阅读(1051)  评论(0编辑  收藏  举报