///声明事件 /// 1、声明一个委托 /// 2、声明一个事件 /// 3、引发事件的方法 /// 4、定义事件处理方法 ///使用事件 /// 1、实例化事件发布者 /// 2、实例化事件订阅者 /// 3、订阅事件 /// 4、触发事件
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; namespace ConsoleTest { class Program { private const string url = "http://www.cninnovation.com"; static void Main(string[] args) { CustumerEvent custumerEvent = new CustumerEvent();//实例化事件发布者 RunSport runSport = new RunSport();//实例化事件订阅者 custumerEvent.eventRun += runSport.Run;//订阅事件 custumerEvent.eventRun += () => { Console.WriteLine("begin the race"); };//lambda表达式订阅事件 custumerEvent.Begin();//触发事件 Console.ReadKey(); } } public class CustumerEvent { ///声明事件 /// 1、声明一个委托 /// 2、声明一个事件 /// 3、引发事件的方法 /// 4、定义事件处理方法 ///使用事件 /// 1、实例化事件发布者 /// 2、实例化事件订阅者 /// 3、订阅事件 /// 4、触发事件 public delegate void delegateRun();//声明一个委托 public event delegateRun eventRun;//声明一个事件 /// <summary> /// 引发事件的方法 /// </summary> public void Begin() { eventRun(); } } public class RunSport { /// <summary> /// 定义事件处理方法 /// </summary> public void Run() { Console.WriteLine("开始比赛"); } } }