using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
/*
首先 先宣告一個需要的事件
public delegate void houseEmergencyEvent(object sender , EventArgs e);
然後在需要監聽的物件 建立一個 事件
public houseEmergencyEvent occurEmergencyEvent;
再來建立一個緊急呼叫事件的方法
public void callOccurEmergencyEvent(EventArgs e)
{
if(occurEmergencyEvent !=null)
{
occurEmergencyEvent(this,e);
}
}
發生緊急事情 呼叫緊實事件方法
public void occurEmergency()
{
callOccurEmergencyEvent(EventArgs.Empty)
}
*/
/* 創建一個監聽類別
public class HouseListener
{
private House h;
public HouseListener(House h)
{
this.h = h;
//指定需要監聽的物件 監聽的處理方法
h.occurEmergencyProcess += new houseEmergencyEvent(occurEmergencyProcessEvent);
}
//建立一個 監聽到處理的方法
public void occurEmergencyProcessEvent(object sender , EventArgs e)
{
Console.WriteLine("{0}房子的所有電燈緊急關閉",h.HouseName);
}
}
*/
namespace Emergency_Event_Test
{
class mmm
{
static void Main(string[] args)
{
House myHouse = new House("陳豐吉的家");
Console.WriteLine("我家有安裝地震緊急斷電系統");
Console.WriteLine("地震發生了!........");
HouseListener myHouseLintener = new HouseListener(myHouse);
myHouse.occurEmergency();
Console.ReadKey();
}
}
public delegate void houseEmergencyEvent(object sender, EventArgs e);
public class House
{
private String houseName;
public String HouseName
{
get { return houseName; }
}
//房子有一個發生緊急事件的處理物件
public houseEmergencyEvent occurEmergencyEvent;
//建構子
public House(String name)
{
houseName = name;
}
private void callOccurEmergencyEvent(EventArgs e)
{
if (occurEmergencyEvent != null)
{
occurEmergencyEvent(this, e);
}
}
public void occurEmergency()
{
callOccurEmergencyEvent(EventArgs.Empty);
}
}
public class HouseListener
{
private House h;
public HouseListener(House h)
{
this.h = h;
h.occurEmergencyEvent += new houseEmergencyEvent(occurEmergencyProcessEvent);
}
public void occurEmergencyProcessEvent(object sender , EventArgs e)
{
Console.WriteLine("{0}房子的所有電燈緊急關閉",h.HouseName);
}
}
}
2011年5月3日 星期二
C# 事件的運用
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言