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

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 imagefish 的頭像
    imagefish

    幻想魚的幻想空間

    imagefish 發表在 痞客邦 留言(0) 人氣()