閱讀609 返回首頁    go 魔獸


C#委托基礎1——委托基礎

 

C#委托基礎係列原於2011年2月份發表在我的新浪博客中,現在將其般至本博客。

委托和其委托的方法必須具有相同的簽名。簽名相同:1.參數類型相同 2.參數數量相同 3.返回值一致

 

例一

class Program
{
        public delegate int MathMethod(int x, int y);
       
        public int Add(int a, int b)
        {
            return a + b;
        }

        static void Main(string[] args)
        {
            MathMethod mm;
            Program p = new Program();
            mm = p.Add;// 相當於一個方法的容器
            Console.WriteLine("計算結果為{0}",mm(7,6));
            Console.ReadLine();
        }
}

例二

class Program
{
       
        public delegate double MathMethod(double x, double y);

        double Add(double a, double b)
        {
            return a + b;
        }

        double Subtract(double a, double b)
        {
            return a + b;
        }

        double Multiply(double a, double b)
        {
            return a * b;
        }

        double Divide(double a, double b)
        {
            return a / b;
        }

        void DoCalculate(MathMethod mm)
        {
            Console.WriteLine("請輸入第一個數");
            double x = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("請輸入第二個數");
            double y = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("結果{0}",mm(x, y));
            Console.ReadLine();
           
        }

        static void Main(string[] args)
        {
            MathMethod mm;
            Program p = new Program();
            mm = p.Divide;
            p.DoCalculate(mm);
        }
}


本文參考自金旭亮老師的《.NET 4.0麵向對象編程漫談》有關代理的內容

最後更新:2017-04-04 07:32:13

  上一篇:go Android開發1——查找所需要出示權限的內容
  下一篇:go Android開發14——監聽內容提供者ContentProvider的數據變化