Parámetros opcionales en C# - ponte

Parámetros opcionales en C#

Published Sun, Dec 24 2006 8:22

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

 

Filed under: , ,

Comments

# Raúl Guerrero said on Monday, January 08, 2007 1:27 PM

Felicidades por el MVP de C#.

Bien merecido. Espero poder leer más de ti este año.

Por cierto aprovecho para actualizar mi liga

http://www.superneurona.com

Y desearte lo mejor para este año que comienza.

Saludos

# macl.info said on Thursday, October 14, 2010 8:49 AM

Había visto un video donde se usaban parámetros opcionales, de "verdad". Donde además podías hacer referencia a cualquiera de ellos de forma nominal.

El uso de params no me parece una solución adecuada.

# tuLadoVirtual said on Thursday, June 28, 2012 5:42 PM

Interesante, pero como seria una funcion con varios parametros y solo el ultimo como opcional ...? yo no pude implementarlo, asi que mi pregunta ojala sea respondida adecuadamente.

Saludos

# Gabriel Flores said on Thursday, June 28, 2012 10:54 PM

tuLadoVirtual, a la orden.

Han cambiado mucho las cosas desde el año 2006, básicamente ahora puedes hacer esto en la definición del método:

public void func(string par1, string par2="valor")

{

....

}

al asignarle un valor default al último parámetro le estás indicando que es opcional.

Más info: geeks.ms/.../parametros-opcionales-en-c-4-0.aspx

Leave a Comment

(required) 
(required) 
(optional)
(required) 
If you can't read this number refresh your screen
Enter the numbers above: