http://msdn.microsoft.com/en-us/library/dd264739.aspx
msdn的說明。
先講 Optional Arguments(可選參數)應用在Method(方法)上,這功能就是幫你預設好參數(Arguments)值,當有輸入值的時候就聽遵循輸入值的話 ; 當沒有輸入值的時候就直接把預測值塞入。 這東西可以用Overload的寫法實作,但是程式碼將會壟長很多..。
(程式碼實作比較:Optional Arguments vs overload 寫法)
class Program
{
static void Main(string[] args)
{
int UseOptionalArguments = AddForArguments(20);
int NoUseOptionalArguments = AddForArguments(20, 10);
int NoUseOverload = Add(20);
int UseOverload = Add(20, 10);
//--Optional Arguments
// Value:21
Console.WriteLine("UseOptionalArguments:{0}", UseOptionalArguments);
// Value:30
Console.WriteLine("NoUseOptionalArguments:{0}", NoUseOptionalArguments);
//---Overload method---
// Value:21
Console.WriteLine("NoUseOverload:{0}", NoUseOverload);
// Value:30
Console.WriteLine("UseOverload:{0}", UseOverload);
Console.ReadLine();
}
///
/// Optional Arguments
///
public static int AddForArguments(int a, int b = 1)
{
return a + b;
}
///
/// Overload
///
public static int Add(int a, int b)
{
return a + b;
}
///
/// Overload
///
public static int Add(int a)
{
return a + 1;
}
}
==============
Named Argument....老實說我查書查了一下覺得好像沒啥用,Named arguments 這新特性有點多餘阿!! 到底新增這個出來幹嘛的,明明vsts2010就已經支援自動註解功能,有照著寫註解直接移到該func上他就會提示了....。那,這named arguments到底是拿來幹嘛的..= =。所以,就不寫介紹文啦~
PS: 同場加映: overload 和 overwrite的差別以及當這兩個東西經過inheritance(繼承)以後的風險性
http://yensrule.blogspot.tw/2010/10/overloading-vs-overriding.html
文章標籤
全站熱搜
