不定参数,
以下是C的
#define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) ) 
#define va_arg(ap,t) ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) ) 
#define va_end(ap) ( ap = (va_list)0 ) 
<MSDN>
int average( int first, ... ) 

int count = 0, sum = 0, i = first; 
va_list er; va_start( er, first ); /* Initialize variable arguments. */ 
while( i != -1 ) 

sum += i; 
count++; 
i = va_arg( er, int); 

va_end( er ); /* Reset variable arguments. */ 
return( sum ? (sum / count) : 0 ); 

自己改编一下就OK。

解决方案 »

  1.   

    params 关键字可以指定在参数数目可变处采用参数的方法参数。
    在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。
    示例
    // cs_params.cs
    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();
       }   public static void Main() 
       {
          UseParams(1, 2, 3);
          UseParams2(1, 'a', "test");       int[] myarray = new int[3] {10,11,12};
          UseParams(myarray);
       }
    }
      

  2.   

    你就用string来代替就可以了,这个类型的没有一个具体的类型来对应,可以参考UnmanagedType的枚举.