預設引數
如果要提供省略引數的選項,可以使用預設引數:
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);
}
警告 :因為它以這種方式工作,所以在某些情況下預設值可能會有問題。如果更改方法引數的預設值並且不重新編譯該方法的所有呼叫方,則這些呼叫方仍將使用編譯時存在的預設值,這可能導致不一致。