时间: 2021-07-31 作者:daque
using system;namespace testform{/// <summary>/// event source/// </summary>public class bird{public bird(){}public void flying(){this.onbirdevent(birdstatus.flying);}public void dead(){this.onbirdevent(birdstatus.dead);}public void sleep(){this.onbirdevent(birdstatus.sleeping);}private void onbirdevent(birdstatus s){if(this.birdevent!=null){this.birdevent(this,new birdeventargs(s));}}public event birdeventhandler birdevent;}public delegate void birdeventhandler(object sender,birdeventargs e);public class birdeventargs:eventargs{private birdstatus _s;public birdeventargs(birdstatus s){this._s=s;}public birdstatus status{get{return this._s;}}}public enum birdstatus{flying,sleeping,dead}/// <summary>/// event target/// </summary>public class hunter{private bird bird;public hunter(){bird=new bird();bird.birdevent+=new birdeventhandler(this.onwatch);}private void onwatch(object sender,birdeventargs e){switch(e.status){case birdstatus.flying:this.sleep();break;case birdstatus.dead:this.firebird();break;case birdstatus.sleeping:this.killbird();break;}}private void killbird(){...}private void firebird(){...}private void sleep(){...}}}