型別安全的EventHandlerList

2022-03-03 06:21:33 字數 1447 閱讀 4707

我們寫乙個類時,有時候會在同乙個類上新增很多事件,事件很多的話,是不容易管理的,.net提供的eventhandlerlist可以輔助多個事件的管理,但不方便的地方是,它不是型別安全的,缺少型別安全,多少用起來擔心會出錯。經過我的一番改造,可以將系統提供的eventhandlerlist通過泛型提供型別安全的管理。泛型類eventhandlerlist.cs的實現如下:

1

public

sealed

class eventhandlerlist: idisposable 27

8public delegate this

[t key]914

set

19else22}

23}2425

public

void

addhandler(t key, delegate value)

2631

else 34

} 35

36public

void addhandlers(eventhandlerlistlisttoaddfrom) 37

43}4445

public

void

dispose() 46

4950

private

listentry find(t key) 51

57 found =found.m_next;

58}

59return

found; 60}

6162

public

void

removehandler(t key, delegate value) 63

68}6970

private

sealed

class

listentry

7182

} 83 }

有了它,我們就可以改變多個事件的使用方式,例子類似於下面這個。

1

public

class

dispatchercore29

remove 12}

1314

public

event

eventhandler onrefreshdata

1519

remove22}

2324

private

void

raiseevent(eventtype eventtype, eventargs args)

2531

32//

其它邏輯,在適當的時候呼叫raiseevent

3334

private

enum

eventtype

3542 }

用起來更方便,很難出錯。希望對大家有用。

C C 的型別安全

什麼是型別安全?型別安全很大程度上可以等價於記憶體安全,型別安全的 不會試圖訪問自己沒被授權的記憶體區域。型別安全 常被用來形容程式語言,其根據在於該門程式語言是否提供保障型別安全的機制 有的時候也用 型別安全 形容某個程式,判別的標準在於該程式是否隱含型別錯誤。型別安全的程式語言與型別安全的程式之...

C C 的型別安全

型別安全的 不會檢視訪問沒被授權的記憶體區域。型別安全的程式語言指的是其提供保障型別安全的機制 型別安全的程式指的是該程式沒有隱含型別錯誤。1 c語言的型別安全 c語言只在區域性上下文中表現型別安全,例如試圖將一種型別的指標轉換成其他型別的指標時,編譯器會報錯,除非使用顯示型別轉換。例1 print...

C C 型別安全的

什麼是型別安全?型別安全很大程度上可以等價於記憶體安全,型別安全的 不會試圖訪問自己沒被授權的記憶體區域。型別安全 常被用來形容程式語言,其根據在於該門程式語言是否提供保障型別安全的機制 有的時候也用 型別安全 形容某個程式,判別的標準在於該程式是否隱含型別錯誤。型別安全的程式語言與型別安全的程式之...