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

C# 入門教學:自訂事件 基礎實作(二)

     編輯:關於C語言

基礎版自訂事件 (無自訂參數)


class Dog
{
    public delegate void AlarmEventHandler(object sender, EventArgs e);
    public event AlarmEventHandler Alarm;

    public void OnAlarm()
    {
        if (this.Alarm != null)
        {
            Console.WriteLine("\n狗報警: 有小偷進來了,汪汪~~~~~~~");
            this.Alarm(this, new EventArgs());
        }
    }
}

class Host
{
    void HostHandleAlarm(object sender, EventArgs e)
    {
        Console.WriteLine("主人: 抓住了小偷!");
    }

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

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();
        Console.ReadLine();
    }
}

與進階版差異

  • 使用內建 EventArgs,無額外資料傳遞。
  • 處理器無法得知小偷數量,僅能固定回應。
  • 適合簡單通知場景;需攜帶資料時請使用自訂 EventArgs (見第 4 部)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved