程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 小知識(七):代理&事件,小知識代理

小知識(七):代理&事件,小知識代理

編輯:C#入門知識

小知識(七):代理&事件,小知識代理


代理delegate:

    對象引用    指向    某個特定類型的對象。

    代理        指向    某個特定類型的方法。

      

    代理四步:

 

    class Program

    {

        //定義frist代理

         public delegate void first(int i);

        //主函數,main入口

        static void Main(string[] args)

        {

            //創建first類型引用

            first MyDelegate = null;

            //創建指向show方法的代理引用

            MyDelegate += new first(show);

            //通過代理引用調用show方法

            MyDelegate(666);

            Console.ReadKey();

        }

        //show方法

        public static void show(int i)

        {

            Console.WriteLine(i.ToString());

        }

    }

    class Program

    {

        //定義frist代理

         public delegate void first(int i);

        //主函數,main入口

        static void Main(string[] args)

        {

            //創建first類型引用

            first MyDelegate = null;

            //創建指向show方法的代理引用

            MyDelegate += new first(show);

            //通過代理引用調用show方法

            diao(666, MyDelegate);

            Console.ReadKey();

        }

        //show方法

        public static void show(int i)

        {

            Console.WriteLine(i.ToString());

        }

        //

public static void diao(int i,first dele)

{

            dele(i);

        }

    }

 

事件event:

//定義EventDelegate代理

    public delegate void EventDelegate();

    class Program

    {

        //主函數,main入口

        static void Main(string[] args)

        {

            //實例化ClockTimer

            ClockTimer clockTimer = new ClockTimer();

            //MyEvent中添加OnClockTimer方法

            clockTimer.MyEvent += new EventDelegate(OnClockTimer);

            //執行clickTimer對象的show方法

            clockTimer.show();

            Console.ReadLine();

        }

         //接受方法

        public static void OnClockTimer()

        {

            Console.WriteLine("收到時鐘事件");

         }

    }

    //事件產生類

     public class ClockTimer

    {

        //定義事件(event)

        public event EventDelegate MyEvent;

        //產生事件方法

        public void show()

        {

            for(int i=0;i<1000;i++)

            {

            //產生事件

            MyEvent();

            //睡眠1秒

            Thread.Sleep(1000);//System.Threading;

            }

        }

    }

大師們,上面的是我對event和delegate的理解。如果有錯別的地方麻煩您幫我指出來。萬分感謝!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved