C#默认参数

示例

如果要提供省略参数的选项,则可以使用默认参数:

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")
}

当您调用此类方法并忽略为其提供默认值的参数时,编译器将为您插入该默认值。

请记住,具有默认值的参数需要没有默认值的参数之后编写。

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);
    }

警告:因为它可以那样工作,所以默认值在某些情况下可能会出现问题。如果更改方法参数的默认值并且不重新编译该方法的所有调用程序,则这些调用程序仍将使用编译时存在的默认值,这可能会导致不一致。