我正在编写一个包含第3个聚类的某些部分的类的包装器。它增加了一些缺失的功能。通过将它保持为一个类,我可以在多个项目中使用它。
但是我想知道我应该如何包装引发事件的事情。 因此,我也可以扩展这些事件,但仍然可以为使用我的扩展类的应用程序引发事件。所以它有点像一个附加功能的passtrough。让我用一些代码来澄清这个问题
因此MyExtend类在其构造函数
中包含此代码片段thirdpartyClass theirclass += new thirdpartyclass()
thirdpartyClass.init()
theirclass.EventX = += MyWrapper_Method
然后MyExtend类中的事件的包装器看起来像
Public Void MyWrappedEvent_method()
{
messagebox("logged it") //it actually logs to a database but i keep it short here
}
现在将来其他一些程序应该能够使用MyExtend类。 并且除了记录它之外还能做其他事情,当某个事件(ea MyWrappedEvent)发生以便我可以写
Using MyExtend;
//somwhere in main
MyExtend HasExtended = new MyExtend();
HasExtended.MyWrapper += NewFutureRoutine()
//...
// ..
public void NewFutureRoutine()
{
//when i call this event i wont need to care about logging thats allready in it
// so i could focus on other tasks ea:
Arduino.Controller(setHardwarePin,high);
}
答案 0 :(得分:0)
为了让您的MyExtend
班级处理事件,您需要在班级中捕获所需的事件,然后触发另一个事件并订阅它。
我建议阅读并遵循以下链接/说明:
Raising an Event
How to: Raise and Consume Events
How to manually invoke an event?