Saltar al contenido

¿Cómo pasar parámetros opcionales a un método en C#?

Te doy la bienvenida a nuestro sitio, ahora hallarás la respuesta a lo que buscas.

Solución:

Antes de .NET 4, debe sobrecargar el método:

public void sendCommand(String command)

    sendCommand(command, null);

.NET 4 introduce soporte para parámetros predeterminados, que le permiten hacer todo esto en una sola línea.

public void SendCommand(String command, string strfilename = null)

  //method body as in question


Por cierto, en la pregunta tal como la ha escrito, tampoco está llamando al método en su primer ejemplo:

Sendcommand("STOR " + filename);

todavía está usando un solo parámetro que es la concatenación de las dos cadenas.

Usa los parámetros attribute:

public void SendCommand(String command, params string[] strfilename)


entonces puedes llamarlo así:

SendCommand("cmd");
SendCommand("cmd", "a");
SendCommand("cmd", "b");

o si usa C# 4.0, puede usar la nueva función de argumentos opcionales:

public void SendCommand(String command, string strfilename=null)
 
   if (strfilename!=null) .. 

La respuesta obvia para esto debería ser, no lo hagas de esa manera.

Debería tener un método separado para cada comando, o una clase base de comando y una clase derivada separada para cada comando, con un método Execute.

Es un mal diseño tener un método que maneje todos los comandos imaginables.

Realmente no quieres uno Sendcommand() para manejar todos los comandos posibles.

Puedes apoyar nuestra publicación ejecutando un comentario y dejando una valoración te estamos agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *