close
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
全站熱搜