国产探花免费观看_亚洲丰满少妇自慰呻吟_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
{
}
}
在其中實現自己的注冊函數即可。看上去是不是很像屬性的定義:)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新泰市| 宁晋县| 剑河县| 大兴区| 安庆市| 道真| 武威市| 庐江县| 富民县| 神木县| 曲靖市| 中山市| 四会市| 保靖县| 农安县| 彭州市| 麻栗坡县| 延边| 巨野县| 沙田区| 即墨市| 天长市| 巴林右旗| 平舆县| 台山市| 桐乡市| 无为县| 行唐县| 巴楚县| 元阳县| 仙桃市| 广河县| 上杭县| 大理市| 太原市| 贵定县| 桑日县| 汶上县| 呼玛县| 于都县| 乌兰浩特市|