默认参数
如果要提供省略参数的选项,可以使用默认参数:
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);
}
警告 :因为它以这种方式工作,所以在某些情况下默认值可能会有问题。如果更改方法参数的默认值并且不重新编译该方法的所有调用方,则这些调用方仍将使用编译时存在的默认值,这可能导致不一致。