1. 命名和可選參數
Visual C# 2010引入了命名和可選參數,經常使用SQL Server編寫存儲過程的開發人員對此應該比較熟 悉—命名參數和可選參數與存儲過程的參數十分相似。
命名參數允許調用者通過提供參數的名稱來為其賦值,這樣參數的位置就不在重要了。可選參數允許 在定義時為某些參數賦值,在調用時可以忽略這些“可選的”參數。命名參數和可選參數可以應用在方法 、索引器、構造函數和委托。命名參數和可選參數與dynamic類型結合在一起使用,可以方便的訪諸如 Office自動化API之類的COM API。
1.1 命名參數
命名參數的語法為:
參數名稱1:參數值1,參數名稱2:參數值2…
例如以下代碼:
static void Main(string[] args)
{
CreateUser (password:"adminpassWord",name:"admin");
}
static void CreateUser(string name, string passWord)
{
Console.WriteLine("name:{0},password:{1}", name, passWord);
}
可以看到由於在調用時使用了命名參數,參數的位置就不在重要了。
1.2. 可選參數
方法、構造函數、索引器和委托的定義可以指定其參數為必選的還是可選的,在調用時必須提供必選 參數,但是可以省略可選參數。
還可以使用System.Runtime.InteropServices.OptionalAttribute特性類定義可選參數,該類從1.0時 代就已經包含在基類庫中了。
每一個可選參數的定義都包含默認值(默認值必須是常量),如果在調用時沒有指定該參數,則使用 默認值。例如以下代碼:
static void Main(string[] args)
{
CreateUser ("admin","adminpassWord",50);
}
/// <summary>
/// 創建用戶
/// </summary>
/// <param name="name">用戶名稱</param>
/// <param name="passWord">用戶密碼</param>
/// <param name="score">積分 </param>
/// <param name="isLocked">是否鎖定</param>
static void CreateUser(string name, string passWord,
int score=20,bool isLocked=false)
{
Console.WriteLine("name:{0},password:{1}", name, passWord);
}