围绕另一个类c#

时间:2017-07-20 09:14:31

标签: c# events

我正在编写一个包含第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);
}

1 个答案:

答案 0 :(得分:0)

为了让您的MyExtend班级处理事件,您需要在班级中捕获所需的事件,然后触发另一个事件并订阅它。
我建议阅读并遵循以下链接/说明:

Raising an Event
How to: Raise and Consume Events
How to manually invoke an event?