私は、第三者クラスのいくつかの部分を拡張するクラスの周りにラッパーを書いています。それは欠けていた機能を追加します。それをクラスにすることで、私は複数のプロジェクトでそれを使うことができます。他のクラスの中にイベントをラップするC#
しかし、イベントを発生させるものをどのようにラップするべきなのでしょうか。 私はこれらのイベントを拡張することもできますが、拡張クラスを使用するアプリケーションのイベントを引き上げることはできます。したがって、機能が追加されたパススルーのように機能します。私はそうMyExtendクラスは、そのコンストラクタで、このコードの断片を持っている
コードのビットでこれを明確にしましょう
thirdpartyClass theirclass += new thirdpartyclass()
thirdpartyClass.init()
theirclass.EventX = += MyWrapper_Method
そして、今
Public Void MyWrappedEvent_method()
{
messagebox("logged it") //it actually logs to a database but i keep it short here
}
ようMyExtendクラスルック内部イベントのラッパーいくつか将来の他のプログラムは、MyExtendクラスを使用できる必要があります。 と私はあなたの
MyExtend
クラスでイベントを処理させるためには
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);
}
私はあなたが再びそれを発射、その後、あなたのラッパーにイベントをキャッチする必要がありますね。 –
コードの上のほうが既にそれをキャッチしていますが、MyExtendクラスの中にあるので、そこからイベント(イベントとして公開)を再発生させる方法がわかります – user3800527
https://msdn.microsoft.com/en-us/library/wkzf914z(v = vs.90).aspxまたはhttps://docs.microsoft.com/en-us/dotnet/standard/events/how-to-raise-and-consume-eventsまたはhttps://stackoverflow.com/questions/ 8734700/how-to-manually-invoke-an-event –