Los parámetros opcionales son sin dudarlo una gran ayuda a la hora de hacer más simple y limpio nuestro código y en C# siempre fue una deficiencia el no poder usarlos, sin embargo con C# 4.0 estos problemas se volvieron cosas del pasado. A continuación veremos un ejemplo de cómo usarlo.
Supongamos que queremos hacer una función donde le enviemos como parámetros un Nombre un Apellido y una edad y que nos imprima esta información en pantalla, pero que por defecto, nos muestre nuestro nombre, nuestro apellido y/o nuestra edad en caso de que alguno de estos parámetros no sea enviado en la función.
En versiones anteriores de C#, la única forma de lograr esto sería creando tres constructores diferentes, uno donde solo reciba el nombre, otro donde reciba el nombre y el apellido y otro donde se reciba el nombre, el apellido y la edad.
Pero con C# 4.0, ya tenemos la posibilidad de crear la función con parámetros opcionales, veamos como:

Como se ve en la función, he declarado tres parámetros: nombre, apellido y edad y en caso de que no se envíen valores a estos parámetros, tomaran por defecto mi nombre, mi apellido y mi edad y las mostrará en pantalla por medio de un messageBox.
Ahora veamos cómo sería el llamado a este método:
Si enviamos los tres parámetros, el llamado se haría igual que siempre:
metodoEjemplo(“Gloria”, “Marquez”,42);
Si queremos enviar los dos primeros parámetros
metodoEjemplo(“Gloria”, “Marquez”);
Pero qué pasa si queremos enviar el primero o el ultimo, o solo el ultimo? Es aquí donde c# nos ha facilitado la vida totalmente.
Si quiero enviar solo el último parámetro, en este caso la edad
metodoEjemplo(edad: 26);
Como se puede notar, la clave está en poner el nombre del parámetro seguido por : y el valor a enviar. Con esto ya el orden de los parámetros no va a importar, siempre y cuando pongamos el nombre del parámetro, veamos como seria enviar el segundo y tercer parámetro pero en diferente orden, es decir, enviando en este caso primero la edad y después el apellido
metodoEjemplo(edad: 26, apellido: “Marquez”);
Bueno espero que este post les sea de mucha utilidad.