2015年12月15日 星期二

宣告事件一

例:
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 語法只能寫成"+="(事件的註冊) 或是 "-="(事件的註銷)兩種形式,而不能寫成"="的形式,否則編譯器會回報錯誤。


沒有留言:

張貼留言