C#中委託的呼叫

iamzxf發表於2015-04-20

C#中委託的呼叫有三種形式。假設定義了委託D,而在類C中有三個方法M1,M2和M3,其中M1和M2是靜態方法,M3是例項方法,則這三種形式分別是:

    D cd1=new D(C.M1); //直接在例項化委託時進行呼叫;

    D cd2=C.M2;        //採取賦值的方式進行進行;

    C cc=new C();

    D cd3=new D(cc.M3); //對例項方法採取的方式

具體程式碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace delegateDemo2
{
    delegate void D(int x);
    class C
    {
        public static void M1(int i)
        {
            Console.WriteLine("C.M1:"+i);
        }
        public static void M2(int i)
        {
            Console.WriteLine("C.M2:" + i);
        }

        public void M3(int i)
        {
            Console.WriteLine("C.M3:" + i);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {

            D cd1 = new D(C.M1);
            cd1(1);

            D cd2 = C.M2;
            cd2(2);

            C cc = new C();
            D cd3 = new D(cc.M3);
            cd3(3);

            Console.ReadLine();
        }
    }
}


相關文章