C# Language Parámetros predeterminados


Ejemplo

Puede usar parámetros predeterminados si desea proporcionar la opción de omitir parámetros:

static void SaySomething(string what = "ehh") {
    Console.WriteLine(what);
}  

static void Main() {
    // prints "hello"
    SaySomething("hello"); 
    // prints "ehh"
    SaySomething(); // The compiler compiles this as if we had typed SaySomething("ehh")
}

Cuando llama a un método de este tipo y omite un parámetro para el que se proporciona un valor predeterminado, el compilador inserta ese valor predeterminado para usted.

Tenga en cuenta que los parámetros con valores predeterminados deben escribirse después de los parámetros sin valores predeterminados.

static void SaySomething(string say, string what = "ehh") {
        //Correct
        Console.WriteLine(say + what);
    }

static void SaySomethingElse(string what = "ehh", string say) {
        //Incorrect
        Console.WriteLine(say + what);
    }   

ADVERTENCIA : debido a que funciona de esa manera, los valores predeterminados pueden ser problemáticos en algunos casos. Si cambia el valor predeterminado de un parámetro de método y no vuelve a compilar a todos los llamadores de ese método, esos llamadores seguirán usando el valor predeterminado que estaba presente cuando se compilaron, lo que podría causar inconsistencias.