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

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 14:18:59
C#判断事件问题C#在发生一个事件的时候,如何判断上一个发生的事件是什么呢

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);
}
}