記錄Evnet的簡單範例
Step 1:程式碼
//接收方
class 範例_事件
{
來源者 t = new 來源者();
public 範例_事件()
{
t.發行事件 += 訂閱事件;
}
public void 訂閱事件(object sender, string e)
{
//處理訂閱資料
}
}
//發行方
public class 來源者
{
public event EventHandler<string> 發行事件;
public void 做事()
{
觸發事件("ABC");
}
protected virtual void 觸發事件(string e)
{
EventHandler<string> 處理 = 發行事件;
if (處理 != null)
{
處理(this, e);
}
}
}
大家作的範例都好複雜,我把呼叫事件作出最簡單化。
微軟文件依然保持著,不知所云的特性。
連標題都不知在說什麼(HOW TO:發行符合 .NET Framework 方針的事件),
讓你找不到範例。
概念很簡單,在來源的class中製作一個事件(event)。
然後在目前的class使用「+=」來訂閱事件。
當來源class觸發時,目前的class能接到這事件然後處理。
如果不使用event的話,就必須定期監看來源class是否有變動(被動式)。
一來慢一步,二來耗損資源。事件就是主動發送訊息給下游。
參考資料:
沒有留言:
張貼留言