引發多個事件
如果您的類別要引發多個事件而依照引發事件中的描述設計它們,則編譯器會對每一事件委派執行個體產生一個欄位。如果事件的數目很多,每一委派一個欄位的儲存取成本可能是無法接受的。對於這些情況,.NET Framework 提供了一種稱為事件屬性 (在 Visual Basic 2005 中稱為自訂事件) 的建構,可以搭配您所選的其他資料結構用來儲存事件委派。
事件屬性是由事件宣告加上事件存取子 (Accessor) 所組成。事件存取子是您定義用來將事件委派執行個體加入資料結構儲存區或從其中移除的方法。請注意,事件屬性會比事件欄位來得慢些,因為每個事件委派都必須先被擷取,然後才能夠叫用。因此在記憶體和速度之間必須有所取捨。如果您的類別定義了許多不常被引發的事件,您應該實作事件屬性。Windows Form 控制項和 ASP.NET 伺服器控制項是使用事件屬性,而不用事件欄位。
請參閱
工作
HOW TO:使用事件屬性處理多個事件
HOW TO:宣告節省記憶體使用量的事件
參考
System.ComponentModel.EventHandlerList
System.Web.UI.Control.Events