共用方式為


如何:實作自訂事件存取子 (C# 程式設計手冊)

事件是一種特殊的多點傳送委派,只能從宣告該事件的類別內叫用。 用戶端程式碼會藉由提供事件發生時應叫用的方法參考來訂閱事件。 這些方法會透過事件存取子加入委派的叫用清單中,這些存取子與屬性存取子類似,其差異在於事件存取子為具名的 add 和 remove。 大部分情況下,您不需要提供自訂的事件存取子。 當程式碼中沒有提供任何自訂的事件存取子時,編譯器會自動將它們加入。 不過,在某些情況下,您可能必須提供自訂行為。 其中一個案例如主題 如何:實作介面事件 (C# 程式設計手冊) 中所示。

範例

以下範例說明如何實作自訂的 add 和 remove 事件存取子。 即使您可以替換存取子中的任何程式碼,仍建議您在加入或移除新的事件處理常式方法之前,先鎖定事件。

event EventHandler IDrawingObject.OnDraw
        {
            add
            {
                lock (PreDrawEvent)
                {
                    PreDrawEvent += value;
                }
            }
            remove
            {
                lock (PreDrawEvent)
                {
                    PreDrawEvent -= value;
                }
            }
        }

請參閱

參考

事件 (C# 程式設計手冊)

event (C# 參考)