摘要:C# 具名參數及選擇性參數
使用需求: .NET 4.0以上版本
使用原因: 可以減少選取多載方法的時間
使用方式:
static void Main(string[] args)
{
TestChooseParameter("CLRIS",score:70);
}
private static void TestChooseParameter(string Name, int id = 3, int score = 60)
{
Console.WriteLine(Name);
Console.WriteLine(id);
Console.WriteLine(score);
Console.ReadLine();
}
//NAME = CLRIS
//id = 3
//score = 70
正確寫法
TestChooseParameter("CLRIS",score:70);
錯誤寫法
TestChooseParameter(score:70, "CLRIS"); //具名參數需要出現在固定的引數之後
函式中就可以預設該欄位的初始值,若呼叫時沒有宣告,則帶入這初始值
另外一點好處是,這樣不用的欄位在宣告時也不用去輸入
像是上方的例子有三個引數但是我卻只有輸入兩個引數
PS: 要小心模擬兩可的函式
GetInfo();
public void GetInfo(int a =10){ //Do Some Thing}
public void GetInfo(int a =10, int b = 20){ //Do Some Thing}
這種編譯就會錯誤了,因為根據使用方法兩個都可以,因此需要給最低可供辨識的引數給編譯器
static void Main(string[] args)
{
TestChooseParameter( score:100);
}
private static void TestChooseParameter(string Name="A", int id = 1, int score = 60)
{
Console.WriteLine(Name);
Console.WriteLine(id);
Console.WriteLine(score);
Console.ReadLine();
}
private static void TestChooseParameter(string Name = "B", int id = 2)
{
Console.WriteLine(Name);
Console.WriteLine(id);
Console.ReadLine();
}
這樣會呼叫3個引數的那個函式