问题描述
比如我需要自定义一个控件。给这个控件添加相应事件,这个事件可能是点击,键入值,或者USB收到一段数据种种。publiceventEventHandler<MyEventClass>MyEvent;protectedvirtualvoidOnmyEvent(MyEventClasse){if(MyEvent!=null){MyEvent(this,e);}}
问题是,怎么区分我定义的事件是点击?键入值?还是USB插/拔,收到数据?
解决方案
解决方案二:
事件本身就是一个“含义”,它就是用来屏蔽低级的无关概念的。如果你需要具有业务逻辑含义的“点击、键入值、USB插、USB拔、收到数据”共5个事件,你为什么又多余地把时间浪费在MyEvent这样一个低级的“纯技术字眼”上呢?
解决方案三:
那么问题是,如何定义一个包含特定”含义“的事件?
解决方案四:
这个是由你触发方式确定的,你可以定义成两个事件,或者自定义EventArgs,包含参数用于指示这是哪种方式触发
解决方案五:
楼主别被事件搞晕了,就是一个委托前面加上event了,要区分不同的事件,可以多定义几个不同的事件,也可以在MyEventClass加个来源变量表示.
时间: 2024-09-25 02:52:26