net framework 4.0新增加了可選參數的支持,其實很簡單,只要給參數賦個默認值就可以了
如下
[csharp]
static string GetStr(string s = "a", int i = 10, string r = "rrrr")
{
return s + i + r;
}
static string GetStr(string s = "a", int i = 10, string r = "rrrr")
{
return s + i + r;
}
調用時,可以用如下幾種方法調用
[csharp]
GetStr();
GetStr("abcde");
GetStr("abcde", 100);
GetStr("abcde", 100, "hjklmn");
GetStr();
GetStr("abcde");
GetStr("abcde", 100);
GetStr("abcde", 100, "hjklmn");
並且,參數的順序是不能改變的,不能跳過一個參數使用後面的參數類型,所以這樣就會有個問題,如果我想調用這個方法只想用第一個和第三個參數,怎麼辦呢。
其實在可選參數的調用上,微軟推出了命名參數,即
[csharp]
GetStr(s: "abcde", r: "hijklmn");
GetStr(s: "abcde", r: "hijklmn");只需要將參數名稱標記下來就可以了。(命名參數只能是原方法的參數名 後跟冒號“:”)
這樣以後的重載就可以省很多事了。省去了大段的代碼重載方法