.net自定義事件,經典簡單實例代碼

1,新建一個控制檯應用程序TestDelegate,本項目主要實現:熱水器加熱,報警器監控,當熱水溫度達到80度的時候報警器報警這樣一個簡單的事件處理程序this

2,定義委託處理程序spa

public delegate void PlayGameHandler(object sender, System.EventArgs e);.net

3,添加一個報警器類,報警方法只有在溫度超過80度的時候會被調用code

// 負責報警的人
    public class 報警器
    {
        public 報警器()
        {
            Console.WriteLine("生成報警器...");
        }
        public void 報警(object sender, EventArgs e)
        {
            System.Threading.Thread.Sleep(100);//休息0.1秒
            Console.WriteLine("滴滴。。。。溫度超過80度...");
        }
    }

4,添加一個熱水器類,利用循環加熱熱水器,從一度增長到100度,當溫度超過80度時候觸發事件報警blog

// 若是加熱,則引起事件
    public class 熱水器
    {
        // 先定義一個事件,這個事件表示「熱水器」在加熱。
        public event PlayGameHandler PlayGame;
        public 熱水器()
        {
            Console.WriteLine("生成熱水器....");
        }

        public void 加熱()
        {
            Console.WriteLine("開始加熱了....."); 
            System.EventArgs e = new EventArgs();
            for (int i = 1; i < 101;i++)//溫度每增長一度調觸發一次事件
            {
                System.Threading.Thread.Sleep(100);//休息0.1秒
                Console.WriteLine(i.ToString()+"");
                if (PlayGame != null)
                {
                    if(i>=80)//當溫度大於80度
                    PlayGame(this, e);//觸發事件
                }
            }

        }
    }

5,客戶端開始調用事件

public class Program
    {
        //[STAThread]
        public static void Main(string[] args)
        {
            Console.WriteLine("場景開始了....");
            報警器 w = new 報警器();
            熱水器 z = new 熱水器();

            // 指定監視
            z.PlayGame += new PlayGameHandler(w.報警);
            System.Threading.Thread.Sleep(1000);
            // 開始加熱
            z.加熱();
            Console.WriteLine("場景結束...");
            Console.ReadLine();
        }

    }

6,運行後結果如圖:string

。。it

。。event

。。class

。。

大功告成,但願能爲你們帶來幫助,有什麼問題能夠溝通聯繫shixudong3@yeah.net,謝謝

相關文章
相關標籤/搜索