[C#]隨筆手扎 - 參數

摘要:[C#]隨筆手扎 - 參數

這篇文章,算是純手扎了,我想,大部分的人都應該知道用法,在此分享給初學者了!

 

C# 4.0中,新增了以下二種參數的調用方法:

選擇性參數具名參數

<範例程式碼>
    class Program
    {
        static void Main(string[] args)
        {
            //選擇性參數
            Book.Detail(1, "ASP.NET 輕鬆上手");
            Book.Detail(2, "C# 4.0 Unleashed", 2100, "C#");
            //具名參數
            Book.Detail(BookName: "王者歸來C#4.0權威指南", BookMark: "C#", dt: new DateTime(2011, 4, 1), Price: 680, BookID: 3);
            Book.Detail(BookName: "Visual Basic 2010程式設計", BookID: 4);            
        }
    }

    public class Book
    {
        public static void Detail(int BookID, string BookName, int Price = default(int), string BookMark = "未歸類", DateTime dt = default(DateTime))
        {
            Console.WriteLine("書號:" + BookID + ",   書名:" + BookName + ",   分類:" + BookMark + ",   定價" + Price + "   " + dt.ToShortDateString());
        }
    }

 

 

<實際結果>

 

從以上的例子,不難看出二者的使用方式及差別,也因為多了這二種參數,讓重載的寫法可以更有彈性了!

 

以下,再介紹原本就有的參數使用方法(非C# 4才有),這做法再加上以上參數使用,相信可以讓您省下不少工的!


params(array parameter)

<範例程式碼>
    public static void Test()
    {
        CalcSum("Bee",new int[]{90,80,75,83});
        CalcSum("Mary",82,87,92,85);
        CalcSum("Tom", 77, 78, 82);
        CalcSum("LaLa");
        CalcSum("Jery",null);
    }
    public static void CalcSum(string StuName, params int[] score)
    {
        int sum = 0;
        if (score != null)
        {
            foreach (int value in score)
            {
                sum += value;
            }
            Console.WriteLine(string.Format("姓名:{0} , 總成績:{1:d}",StuName,sum));
        }
    } 

 

<實際結果>