¿Cómo omitir parámetros opcionales en C #?

Ejemplo:

public int foo(int x, int optionalY = 1, int optionalZ = 2) { ... } 

Me gustaría llamarlo así:

 int returnVal = foo(5,,8); 

En otras palabras, quiero proporcionar x y z , pero quiero usar el valor predeterminado para Y , optionalY = 1.

Visual Studio no le gusta el ,,

Por favor ayuda.

Si esto es C # 4.0, puede usar la función de argumentos con nombre:

 foo(x: 5, optionalZ: 8); 

Vea este blog para más información.

En C # 4.0 puede nombrar los argumentos que ocurren después de omitir los valores predeterminados de esta manera:

 int returnVal = foo(5, optionalZ: 8); 

Esto se llama como argumentos con nombre . Varios otros idiomas proporcionan esta función, y es común que utilicen la syntax foo(5, optionalZ=8) , lo que es útil saber cuando se lee código en otros idiomas.

Otra forma dinámica de suministrar los parámetros de su elección es implementar su método (s) en una clase y suministrar parámetros nombrados al constructor de la clase. ¿Por qué ni siquiera agregar llamadas a métodos en la misma línea de código como se menciona aquí: cómo definir los parámetros nombrados C #

var p = new PersonInfo {Name = “Peter”, Age = 15} .BuildPerson ();

Esta es una respuesta tardía, pero para las personas que entran en esto. También se podrían usar sobrecargas, que usan el mismo nombre que el método / función, pero con un conjunto diferente de parámetros.

ea

 int SummAll (int a=0, int b=1, int c=2) {return a+b+c;} int SumAll (int a=0;int c=10) //skipping B {return a+c; } 

Este patrón es igual a cómo con intellicense podemos navegar a través de variaciones de funciones.