c# 使用委託模型 來實現事件,事件的處理方法不必在將生成事件的類中定義,需要做的事情就是把事件源和事件處理程式結合起來,使用事件處理委託,簡稱事件委託可以定義為生成事件的類的乙個成員,事件委託為多播的。
事件委託的形式
public delegate void mousehandler(object source , eventargs e)
object souce 為事件源(表示發生事件的**,比如 button)
eventargs :system.eventargs類的例項或者派生類的例項,它包含事件的另外資訊。
.net framework 定義了大量的事件處理委託
如:public delegate void keyeventhanlder(boject souce ,keyeventargs args)
如:public delegate void mouseeventhanlder(boject souce ,mouseeventargs args)
使用者自定義事件委託(只為說明下事件委託執行原理)
public delegate void nameeventhandler (object souce,neweventargs e)
必須自己定義 neweventargs類,neweventargs 為system.eventargs的派生類
觸發事件
1)把事件委託的乙個例項定義為類的成員
比如button的click事件 把事件委託的乙個例項成員定義到button類中
2)確定何時生成事件**
3)定義生成提供事件的eventargs物件**
demo
public class namelisteventargs:eventargspublic string name
set} public int cout
set
}}
public class namelist //相當於事件源類,如發生單擊事件的button類public void add (string name)
}}
namespace demopublic static void newname(object souce,namelisteventargs e)
public static void currentcount(object souce,namelisteventargs e)
}}
c 事件 委託
c 事件 假設場景 在比賽過程中,當裁判員槍聲響起,發生了乙個事件,裁判員通知該事件發生,參加比賽的運動員仔細聽槍聲是否發生。運動員是該事件的訂閱者,沒有參賽的人不會注意,即沒有訂閱該事件。c 中使用事件需要的步驟 1 建立乙個事件 event 委託名 事件 2 訂閱事件 事件 new 委託名 方法...
c 委託和委託事件
委託很好用,c 的委託有點函式指標的感覺,它能簡化判斷語句的使用,還能為視窗新增新的事件。weituo.cs using system using system.collections.generic using system.linq using system.text namespace fen...
C 委託及事件
有許多人問的,net中的委託以及事件處理。我拿簡單的例子說明一下,是現實中的例子 比如說乙個公司 場景 你是老闆,手下有兩個員工,小張和小王。你命令小王,如果小張玩遊戲,則小王扣去小張500元錢。這就是現實中的委託。實際上,在寫程式中,程式設計師就是老闆,小張和小王就是兩個物件。小張玩遊戲是乙個方法...