Parámetros opcionales en C#

Un manejo bastante fácil de parámetros opcionales en C# es usando la palabra reservada params, así:

 

    public string concatena(params string[] cadenas)
{
string sResult = "";
foreach (string str in cadenas)
{
sResult = sResult + str + " ";
}
return sResult;
}

Y se usaría tan sencillo como esto:


 

Label1.Text = concatena("uno");
Label1.Text = concatena("primero", "segundo", "tercero");

Sin embargo, se debe tomar en cuenta que esto limita el Intellisense en el proyecto, ya que no se tiene idea de los parámetros que se están pasando a la función. La recomendación políticamente correcta (en términos de POO al menos), es usar funciones con parámetros sobrecargados según se necesiten. Por ejemplo:


 

    static string concatena(string str)
{
return str;
}

static string concatena(string str1, string str2)
{
return str1 + " " + str2;
}

static string concatena(string str1, string str2, string str3)
{
return str1 + " " + str2 + " " + str3;
}


 Aunque, claro está, en ejemplos tan sencillos como este nos veremos tentados a usar params, es bueno tomar en cuenta alternativas propias del lenguaje. Cuando escalemos implementaciones, nos agradeceremos a nosotros mismos seguir las reglas del juego apropiadamente.


Más info:


Using Params Keyword


Optional Parameters


How to read optional parameters