【譯注:我們以下例說明後面這句話的意思:
public class Game
{
public event ScoreChangeEventHandler ScoreChange;
protected void OnScoreChange()
{
if (ScoreChange != null) ScoreChange(30, ref true);//在類內,可以這麼使用
}
,但在這個類外,ScoreChange就只能出現在運算符+=和-=的左邊】
你可能首先會在圖形用戶界面框架裡遇到這個系統。game好比是用戶界面的某個控件,它根據用戶輸入觸發事件,而referee則類似於一個窗體,它負責處理該事件。
【作者注:委托第一次被微軟Visual J++引入也是Anders Hejlsberg設計的,同時它也是造成Sun和微軟在技術和法律方面爭端的起因之一。James Gosling,Java的設計者,對Anders Hejlsberg曾有過一個故作謙虛聽起來也頗為幽默的評論,說他因為和Delphi藕斷絲連的感情應該叫他“方法指針先生”。在研究Sun對委托的爭執後,我覺得稱呼Gosling為“一切都是一個類先生”好像公平些J 過去的這幾年裡,在編程界,“做努力模擬現實的抽象”已經被很多人代之以“現實是面向對象的,所以,我們應該用面向對象的抽象來模擬它”。
Sun和微軟關於委托的爭論可以在這兒看到:
http://www.Javasoft.com/docs/white/delegates.html http://msdn.microsoft.com/visualj/technical/articles/delegates/truth.asp 】