c 事件委託

2022-03-16 07:49:56 字數 1255 閱讀 5598

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:eventargs

public string name

set} public int cout

set  

}}

public  class namelist //相當於事件源類,如發生單擊事件的button類

public void add (string name)

}}

namespace demo

public 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元錢。這就是現實中的委託。實際上,在寫程式中,程式設計師就是老闆,小張和小王就是兩個物件。小張玩遊戲是乙個方法...