2011-05-10 8 views
6

Las matrices de parámetros permiten un número variable de argumentos que se pasa en un método:No entiendo la utilidad de las matrices de parámetros?

static void Method(params int[] array) 
    {} 

Pero no ven su utilidad, ya mismo resultado podría lograrse mediante la especificación de un parámetro de tipo particular array:

static void Method(int[] array) 
    {} 

Entonces, ¿qué beneficios (si existen) tiene la matriz de parámetros sobre el parámetro de valor del tipo de matriz?

gracias

Respuesta

2

La ventaja es que el compilador crea la matriz de forma automática para usted :

string coor = String.Concat("x=", x, ", y=", y); 

El código que se genera para que en realidad es:

string coor = String.Concat(new string [] { "x=", x, ", y=", y }); 

Incluso obtienes lo mejor de ambos mundos. Si tiene sus datos en una matriz, puede pasarlos a un método que tenga un parámetro params.

+0

gracias a todos por su ayuda – user702769

6

En el segundo ejemplo, el consumidor no puede llamarlo usando

MyType.Method(1, 2, 3) 
2

Por mi parte, prefiero escribir

Method(1, 2, 3, 4, 5); 

en lugar de

Method(new int[] { 1, 2, 3, 4, 5}); 
7

Es solo un código readabi cosa de la lity Por ejemplo, string.Format:

string value = string.Format("SomeFormatString", param1, param2, param3, param4.... param999); 

Podría escribirse así en una vida diferente:

string value = string.Format("SomeFormatString", new string[] { param1, param2, param3 }); 

Al final, es sólo azúcar sintáctico para hacer el código más fácil de leer y más fácil de entender.

1

Así es como se llaman.

En el primer ejemplo, con params, puede llamar Method(1,2,3,4,5);

En el segundo ejemplo, sin params, usted tiene que llamar Method(new [] {1,2,3,4,5});