国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

C#事件機制學習

2024-07-21 02:25:02
字體:
來源:轉載
供稿:網友
c#的事件機制是基于委托實現的。實現一個事件,要先定義一個委托類型
class1
{
public delegate void mydelegate (myeventargs e);
public event mydelegate event1;
}
然后我們可以使用+=和-=注冊、移除事件
class1.event1 += new mydelegate(new myeventargs());
在class中引發事件時最好這樣
class1
{
public fireevent()
{
if(event1 != null)
event1();
}
}


如果不想聲明自己的委托類型的話,可以使用system.eventhandler的委托類型
public delegate void eventhandler(object sender, eventargs e);
其中eventargs轉送附加參數。
可以實現自己的eventargs類
class myeventargs:eventargs
{
}
類名最好以eventargs 結尾,這是個默認規則
調用時如果不想使用參數可以傳遞
eventargs.empty



事件其實背后做了很多工作,自動生成一個委托實例、一個注冊委托的add_xxx方法、一個注銷委托的

remove_xxx方法。事實上這兩個方法可以自己定制。只要聲明事件時使用以下語法:
public event mydelegate1 event1
{
add
{
}
remove
{
}
}
在其中實現自己的注冊函數即可。看上去是不是很像屬性的定義:)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 牙克石市| 东莞市| 马山县| 开化县| 金溪县| 广水市| 楚雄市| 天台县| 博湖县| 广安市| 信丰县| 九寨沟县| 泰来县| 乐至县| 桂平市| 灵山县| 东乡县| 遂宁市| 册亨县| 绩溪县| 长泰县| 徐水县| 禄劝| 丁青县| 博罗县| 霍邱县| 定日县| 阜城县| 永兴县| 湟源县| 乾安县| 三台县| 木里| 河北区| 嘉荫县| 塘沽区| 潍坊市| 海林市| 新蔡县| 阿拉善盟| 涿鹿县|