委託

委託:委託是一種可用於封裝命名或匿名方法的引用類型。

示例:

using System;

namespace DelegateTest
{
    delegate int DoubleAction(int value);
    delegate int MultiplyAction(int a, int b);
    delegate int AddAction(int a, int b);
    delegate int SubtractAction(int a, int b);

    class Program
    {
        public static int Double(int value)
        {
            return 2 * value;
        }

        public int Multiply(int a, int b)
        {
            return a * b;
        }

        static void Main(string[] args)
        {
            //帶有命名靜態方法的委託
            DoubleAction doubleAction = Program.Double;
            Console.WriteLine("doubleAction(20)'s result is " + doubleAction(20));

            //帶有命名實例方法的委託
            Program pro = new Program();
            MultiplyAction multiplyActin = pro.Multiply;
            Console.WriteLine("multiplyActin(10, 20)'s result is " + multiplyActin(10, 20));

            //帶有匿名方法的委託(C# 2.0之後的版本)
            AddAction addAction = delegate(int a, int b)
            {
                return a + b;
            };
            Console.WriteLine("addAction(10, 20)'s result is " + addAction(10, 20));

            //帶有Lambda表達式的委託(C# 3.0之後的版本)
            SubtractAction subtractAction = (int a, int b) => (a - b);
            Console.WriteLine("subtractAction(30, 20)'s result is " + subtractAction(30, 20));

            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章