例:
public delegate void DoGreeting(string name);
public class ManagerHello
{
//宣告一個事件
public event DoGreeting MakeGreet;
public void GreetHello(string name)
{
MakeGreet(name);
}
}
如上的程式碼,這個事件封裝了委派型別的變數,使得在類別的內部,不管是宣告它是public還是protected型別,它還是private型別。宣告一個事件類別似於宣告一個進行了封裝的委派型別變數。以下為叫用程式碼:
public void Main()
{
ManagerHello manager=new ManagerHello();
manager.MakerGreet += EnglishGreeting;
manager.MakerGreet += ChineseGreeting;
manager.GreetHello("張三");
}
這裡需注意的是:manager.MakerGreet += EnglishGreeting 語法只能寫成"+="(事件的註冊) 或是 "-="(事件的註銷)兩種形式,而不能寫成"="的形式,否則編譯器會回報錯誤。
沒有留言:
張貼留言