Pase múltiples parámetros opcionales a una función de C #

¿Hay una manera de configurar una función de C # para aceptar cualquier número de parámetros? Por ejemplo, ¿podría configurar una función tal que lo siguiente todo funcione?

x = AddUp(2, 3) x = AddUp(5, 7, 8, 2) x = AddUp(43, 545, 23, 656, 23, 64, 234, 44) 

Utilice una matriz de parámetros con el modificador de params :

 public static int AddUp(params int[] values) { int sum = 0; foreach (int value in values) { sum += value; } return sum; } 

Si desea asegurarse de que haya al menos un valor (en lugar de una matriz posiblemente vacía), especifíquelo por separado:

 public static int AddUp(int firstValue, params int[] values) 

(Establezca la sum en firstValue para comenzar con la implementación).

Tenga en cuenta que también debe comprobar la referencia de matriz para la nulidad de la forma normal. Dentro del método, el parámetro es una matriz perfectamente ordinaria. El modificador de matriz de parámetros solo hace una diferencia cuando llama al método. Básicamente el comstackdor gira:

 int x = AddUp(4, 5, 6); 

en algo como:

 int[] tmp = new int[] { 4, 5, 6 }; int x = AddUp(tmp); 

Sin embargo, puede llamarlo con una matriz perfectamente normal, por lo que la última syntax también es válida en el código fuente.

C # 4.0 también admite parámetros opcionales, que podrían ser útiles en otras situaciones. Ver este articulo