C#使用委託和事件實現釋出訂閱者模式
阿新 • • 發佈:2018-11-01
事件是C#中的高階概念,和js中的滑鼠點選$("tag").click,懸停$("tag").hover或css元素樣式的改變(onChanged)等事件,當事件觸發才執行我們所委託的方法。
步驟:
1、建立一個委託;
2、將建立的委託與特定事件關聯;
3、編寫C#事件處理程式;
4、利用編寫的C#事件處理程式生成一個委託例項;
5、把這個委託例項新增到產生事件物件的事件列表中去(+=),這個過程又叫訂閱事件。取消的方式是(-=)
點選才執行,不點選不執行:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Example_EventTest { class JudgeEvent { //定義一個委託 public delegate void delegateClick(); //定義一個事件 public event delegateClick eventClick; //引發事件的方法 public void onClick() { eventClick();//被引發的事件 } } class DoClick { //定義事件處理方法 public void doC() { Console.WriteLine("滑鼠被點選了"); } } class Program { static void Main(string[] args) { DoClickrunsport = new DoClick();//例項化事件釋出者 JudgeEvent JudgeE= new JudgeEvent();//例項化事件訂閱者 //訂閱事件 JudgeE.evenClick+=new JudgeE.delegateClick(DoClick.doC); //引發事件 JudgeE.onClick(); Console.ReadKey(); } } }