¿Cómo llamar argumentos no finales como argumento predeterminado en C#?

C# proporciona una gran característica para funcionar que es un argumento de función que puede tener valores predeterminados. Cuando se llama a una función sin el argumento, el argumento obtiene su valor predeterminado. O, en otras palabras, un argumento predeterminado es un valor proporcionado en una declaración de método que se asigna automáticamente si el valor del argumento no se proporciona durante la llamada a la función, entonces el argumento se asignará con un valor predeterminado. El valor predeterminado se asigna utilizando el operador de asignación (=) como este «nombre de palabra clave = valor».

  • El valor predeterminado del argumento predeterminado es una expresión constante.
  • Cada argumento predeterminado contiene un valor predeterminado que forma parte de su definición.
  • El argumento predeterminado siempre se define al final de la lista de parámetros en los métodos. Cuando usamos un argumento predeterminado que no sea el último parámetro, el compilador dará un error.
  • También se conoce como parámetro de opción.

Sintaxis:

public void methodName(arg1, arg2, arg3 = default_Value, arg4 = default_Value)

Llame a un argumento no final y un argumento predeterminado

Cuando llamamos a un argumento no final como argumento predeterminado, normalmente no funcionará como se esperaba. Se puede entender mejor con el siguiente ejemplo.

static void defArgs(int a, int b = 1, int c = 2)   

{

    // Imprimiendo los valores

    Console.WriteLine(“valor de a = ” + a + “, ” + “valor de b = ” + 

                                                               b + “, ” + “valor de c = ” + c);

}

// Queremos asignar el valor b como su valor predeterminado y pasar a, c como argumentos al método defArg

defArgs(100, 200);

Aquí, queríamos asignar 100 a a y 200 a c y dejar b con su valor predeterminado, pero lo que realmente sucede es que 100 se asigna a a, 200 se asigna a b dejando c con su valor predeterminado. Podemos llamar a b (es decir, argumento no posterior) como el argumento predeterminado usando parámetro_nombre y dos puntos para los argumentos que siguen a b, cuando llamamos al método defArg()

Acercarse:

  • Cree un método, por ejemplo, defArgs(). En la definición del método, tome 3 argumentos y para el segundo y tercer argumento asigne valores predeterminados usando el operador de asignación (=).
static void defArgs(int a, int b = 1, int c = 2, int d = 3){}
  • Ahora, desde el método principal llame a los argumentos no finales del método defArg() como argumento predeterminado. Por ejemplo, defArg(100, 200), aquí queremos asignar 100 a a y 200 a c, y queríamos asignar un valor predeterminado a b. Por lo tanto, use el nombre_parámetro y los dos puntos para los argumentos que siguen a la b al llamar al método defArg().
defArgs(100, c:200); 

Aquí 100 asignado a a, 200 asignado a c y b se deja con su valor predeterminado.

  • En el método defArg() imprime los valores de los argumentos usando el método Console.WriteLine().

C#

// C# program to call non-trailing arguments
// as default argument in C#
using System;
 
class GFG{
 
// Driver code   
public static void Main()
{
     
    // Calling b, d as default arguments.
    defArgs(100, c: 200);
 
    // Calling b as default argument.
    defArgs(100, c: 200, d: 300);
}
 
// Method with default arguments
// taking default value of b as 1,
// and default value of c as 2 and d as 3.
static void defArgs(int a, int b = 1, int c = 2, int d = 3)
{
 
    // Printing the values
    Console.WriteLine("value of a = " + a + ",\t" +
                      "value of b = " + b + ",\t" +
                      "value of c = " + c + ",\t" +
                      "value of d = " + d);
}
}
Producción

value of a = 100,    value of b = 1,    value of c = 200,    value of d = 3
value of a = 100,    value of b = 1,    value of c = 200,    value of d = 300

Publicación traducida automáticamente

Artículo escrito por raghu135ram y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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