在 .Net 中實現(xiàn)自定義事件
.Net 中的自定義事件,其實是利用委托實現(xiàn),大概可以分為以下幾個步驟:
1、定義事件傳送的 EventArgs ,當然也可以直接使用系統(tǒng)的 EventArgs。
2、定義該事件類型的委托。
3、定義事件的處理方法。
4、在需要的地方拋出事件,拋出的事件會在外部被捕捉到。
我們以一個簡單的計算程序為例講解,該程序?qū)崿F(xiàn)計算兩個給定數(shù)字的和,當結(jié)果<=100時,正常計算,但結(jié)果>100時,觸發(fā)事件。然后我們在計算方法外捕捉該事件。這就是整個自定義事件及捕捉的過程。
代碼如下,說明請查看注釋:
- class LevelHighArgs : EventArgs
- {
- int _highValue = 0;
- public int HighValue
- {
- get { return _highValue; }
- set { _highValue = value; }
- }
- public LevelHighArgs(int _highValue)
- {
- this._highValue = _highValue;
- }
- }
-
-
- class AddTowInt
- {
-
- public delegate void LevelHigh(object sender, LevelHighArgs e);
- public event LevelHigh OnLevelHigh;
- int _addedValue = 0;
- public int AddedValue
- {
- get { return _addedValue; }
- set { _addedValue = value; }
- }
- public AddTowInt()
- { }
- public void DoAdd(int a1, int a2)
- {
- _addedValue = a1 + a2;
- if (_addedValue > 100)
- {
- LevelHighArgs lha = new LevelHighArgs(_addedValue - 100);
-
-
- OnLevelHigh(this, lha);
- }
- }
- }
-
-
- class Program
- {
- static void Main(string[] args)
- {
-
- AddTowInt ati = new AddTowInt();
-
- ati.OnLevelHigh += new AddTowInt.LevelHigh(ati_OnLevelHigh);
-
- ati.DoAdd(23, 78);
- Console.WriteLine(ati.AddedValue);
- Console.ReadLine();
- }
- static void ati_OnLevelHigh(object sender, LevelHighArgs e)
- {
-
- Console.WriteLine("結(jié)果已經(jīng)超過 100: " + e.HighValue);
- }
- }
posted on 2008-11-03 00:58
BeyondCN 閱讀(511)
評論(0) 編輯 收藏 引用 所屬分類:
.NET