C#判断事件问题C#在发生一个事件的时候,如何判断上一个发生的事件是什么呢

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/18 14:46:27
C#判断事件问题C#在发生一个事件的时候,如何判断上一个发生的事件是什么呢
xT]KPHzY-v%:5,"n~D*~ͩVk]9ja'y4U!c9yy=MC?pWM9%+=\$;[tJ9~[k. 09np=OV&J^El)Wg7?wߒ;LН]\ʶpH\큮2SBʻOZdGlZ9ېS& -UX۲u+`+5U:] zQܚf古2k f*:~>hIqcNXaI1;4BUJp<;p4> Kh,s&@$0E%i7L]RҐEt iY)UGbbsPϔ {]D s|FCo<z,Kq=Dg!$ αS$eB.e, xUI&γ/B=8N?ܗ6EBb2%=VX2ܚ}ثA@g*{݈_w5 ]Nx?%f?TkSMOR“)݋6p?m+ _/<<?l3'%CDFB/wGKMɬwQCa#

C#判断事件问题C#在发生一个事件的时候,如何判断上一个发生的事件是什么呢
C#判断事件问题
C#在发生一个事件的时候,如何判断上一个发生的事件是什么呢

C#判断事件问题C#在发生一个事件的时候,如何判断上一个发生的事件是什么呢

事件是用户自己代码定义的 没有什么内置的手段能够判断

你可以实现所有事件回调的代码   自己写一个log或者记录器进行判断

这是一段测试代码 使用反射为实例的所有事件添加了执行代码 并触发事件

void Main()
{
EventTest instance = new EventTest();
string lastEvent = null;
foreach(EventInfo ev in instance.GetType().GetEvents()) {
string evName = ev.Name;
if (ev.EventHandlerType == typeof(EventHandler)) {
ev.AddEventHandler(instance, (EventHandler)((o,e)=>{
Console.WriteLine("触发事件:{0},上次触发:{1}",evName , lastEvent);
lastEvent = evName;
}));
}
}
instance.Fire();
}

class EventTest{
public event EventHandler Event1;
public event EventHandler Event2;
public event EventHandler Event3;
public void Fire() {
if (Event1 != null) Event1(this, EventArgs.Empty);
if (Event2 != null) Event2(this, EventArgs.Empty);
if (Event3 != null) Event3(this, EventArgs.Empty);
}
}