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

事件是一種特殊的多點傳送委派,只能從宣告所在類別內叫用。 在事件引發時,用戶端程式碼透過提供應該叫用的方法參考,來訂閱事件。 這些方法會透過類似屬性存取子的事件存取子新增至委派叫用清單,不同之處在於事件存取子名為 addremove。 在大部分情況下,您不必提供自訂事件存取子。 當程式碼中不提供任何自訂事件存取子時,編譯器會自動新增它們。 不過,在某些情況下,您可能必須提供自訂行為。 其中一個這類的案例會在如何實作介面事件主題中示範。

範例

下例示範如何實作自訂新增和移除事件存取子。 雖然您可以替代存取子中的任何程式碼,但建議您先鎖定事件,再新增或移除新的事件處理常式方法。

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

另請參閱