iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 15
0
自我挑戰組

Framework 設計原則系列 第 15

Member設計原則(4) - Event

Event 是常常被來做callback使用
可以分成兩種狀態

  1. pre-events
    狀態改變前的事件
  2. post-events
    狀態改變後的事件

使用上的注意事項如下

  1. 使用的文字可以使用"raise",而不要使用"fire" or "trigger"

因為觀感不好???

  1. 使用System.EventHandler<T>
public class NotifyingContactCollection : Collection<Contact>{
    public event EventHandler<ContactAddedEventArgs> ContactAdded;
}
  1. 傳入參數繼承EventArgs,命名字尾加上EventArgs
public class AlarmRaisedEventArgs : EventArgs{
    ....
}
  1. 使用prtected virtual 來修飾 event method,並且將傳入EventArgs的參數名稱命名為e
procted virtual void OnAlarmRaised(AlarmRaisedEventArgs e){
    ...
}
  1. event handlers必須return void
  2. event handlers不要傳入超過2個參數
  3. event handlers第一個參數為object,命名為sender
  4. event handlers第二個參數為EventArgs,命名為e
public delegate void ClickedEventHandler(object sender, ClickedEventArgs e);
  1. 當啟動一個nonstatic event時,不要傳null的sender
  2. 當啟動一個static event時,傳null的sender
  3. 可以考慮在post-event中加入取消的方法

上一篇
Member Design(3) - Constructor
下一篇
Member Design(5) - Field
系列文
Framework 設計原則30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

我要留言

立即登入留言