共用方式為


event (C# 參考)

更新:2007 年 11 月

event 關鍵字用於在發行者 (Publisher) 類別中宣告事件。

範例

下列範例會示範如何宣告及引發使用 EventHandler 當做基礎委派型別的事件。如需取得示範如何使用泛型 EventHandler<TEventArgs> 委派型別,以及如何訂閱事件並建立事件處理常式方法的完整程式碼範例,請參閱 HOW TO:發行符合 .NET Framework 方針的事件 (C# 程式設計手冊)

public class SampleEventArgs
{
    public SampleEventArgs(string s) { Text = s; }
    public String Text {get; private set;} // readonly
}
public class Publisher
{
    // Declare the delegate (if using non-generic pattern).
    public delegate void SampleEventHandler(object sender, SampleEventArgs e);

    // Declare the event.
    public event SampleEventHandler SampleEvent;

    // Wrap the event in a protected virtual method
    // to enable derived classes to raise the event.
    protected virtual void RaiseSampleEvent()
    {
        // Raise the event by using the () operator.
        SampleEvent(this, new SampleEventArgs("Hello"));
    }
}

事件是特殊種類的多點傳送委派,只能從宣告它們的類別或結構 (Struct) 內叫用 (即 Publisher 類別)。如果其他類別或結構訂閱該事件,則當 Publisher 類別引發該事件時,會叫用它們的事件處理常式方法。如需詳細資訊與程式碼範例,請參閱事件 (C# 程式設計手冊)委派 (C# 程式設計手冊)

事件可以標記為 publicprivateprotectedinternal 或 protectedinternal。這些存取修飾詞將定義類別使用者如何存取事件。如需詳細資訊,請參閱存取修飾詞 (C# 程式設計手冊)

關鍵字和事件

下列關鍵字會套用到事件上。

關鍵字

描述

如需詳細資訊

static

讓呼叫端可以隨時使用該事件,即使沒有類別的執行個體 (Instance) 也一樣。

靜態類別和靜態類別成員 (C# 程式設計手冊)

virtual

可讓衍生類別 (Derived Class) 使用 override 關鍵字覆寫事件行為。

繼承 (C# 程式設計手冊)

sealed

指定對於衍生類別而言,它不再是虛擬。

 

abstract

編譯器將不會產生 add 和 remove 事件存取子 (Accessor) 區塊,因此,衍生類別必須提供自己的實作 (Implementation)。

 

您可以使用 static 關鍵字,將事件宣告為靜態事件。這讓呼叫端即使沒有類別的執行個體,也可以隨時使用事件。如需詳細資訊,請參閱靜態類別和靜態類別成員 (C# 程式設計手冊)

您可以使用 virtual 關鍵字,將事件標記為虛擬事件。如此一來,衍生類別便可以使用 override 關鍵字來覆寫事件行為。如需詳細資訊,請參閱繼承 (C# 程式設計手冊)。覆寫虛擬事件的事件也可以是 sealed 事件,這樣便會指定該事件對衍生類別而言將不再是虛擬的。最後,事件可以宣告為 abstract,這表示編譯器將不會產生 add 和 remove 事件存取子區塊。因此,衍生類別必須提供自己的實作。

C# 語言規格

如需詳細資料,請參閱 C# 語言規格中的下列章節:

  • 1.6.6.4 事件

  • 7.16.3 事件設定

  • 10.8 事件

  • 13.2.3 介面事件

請參閱

工作

HOW TO:組合委派 (多點傳送委派) (C# 程式設計手冊)

概念

C# 程式設計手冊

參考

C# 關鍵字

修飾詞 (C# 參考)

其他資源

C# 參考