首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 入門教學:自訂事件 完整實作(五)

     編輯:關於C語言

5. 註冊事件處理器


public Host(Dog dog)
{
    dog.Alarm += new Dog.AlarmEventHandler(HostHandleAlarm);
}

6. 觸發事件完整流程


class Program
{
    static void Main(string[] args)
    {
        Dog dog = new Dog();
        Host host = new Host(dog);

        DateTime now = new DateTime(2008, 12, 31, 23, 59, 50);
        DateTime midnight = new DateTime(2009, 1, 1, 0, 0, 0);

        Console.WriteLine("時間一秒一秒地流逝...");
        while (now < midnight)
        {
            Console.WriteLine("當前時間: " + now.ToString("HH:mm:ss"));
            System.Threading.Thread.Sleep(1000);
            now = now.AddSeconds(1);
        }

        // 午夜到達,觸發警報
        dog.OnAlarm(new NumberOfThiefEventArgs(3)); // 假設 3 個小偷
        Console.ReadLine();
    }
}

執行結果預期

時間一秒一秒地流逝...
當前時間: 23:59:50
...
當前時間: 23:59:59
狗報警: 有小偷進來了,汪汪~~~~~~~
主人: 打110報警, 我家來了3個小偷!

完整類別結構回顧

  • Dog (事件發送者):宣告委派、事件、OnAlarm 觸發方法。
  • NumberOfThiefEventArgs:攜帶小偷數量資訊。
  • Host (事件接收者):實作 HostHandleAlarm,於建構子註冊至 dog.Alarm。
  • Program:建立物件、模擬時間流逝、呼叫 OnAlarm 觸發事件。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved