私が達成しようとしていることの説明は次のとおりです。
フォームの「デバッグ」または「情報」ウィンドウとして使用しているテキスト ボックスがあります。私がやりたいことは、デバッグ ウィンドウに投稿する情報があるときに、作成したクラスにイベントをスローさせ、テキスト ウィンドウにそのイベントをサブスクライブさせ、何か新しいものが入るたびに投稿させることです。私のクラスがテキストボックスの知識を必要としないようにしようとしていますが、それでもすべての情報をテキストボックスに渡す機能があります。
クラス間で「共有」イベントを (おそらくインターフェイスを使用して) 持つことは可能ですか? その 1 つのイベントをサブスクライブするだけで、イベントをスローするすべてのクラスからプルすることができますか?
ビジュアルの場合、基本的には次のようになります。
Public delegate void DebugInfo(string content)
Class foo1
{
event DebugInfo DebugContentPending
public void bar()
{
DebugContentPending("send this info to the debug window")
}
}
Class foo2
{
event DebugInfo DebugContentPending
public void bar()
{
DebugContentPending("send this info to the debug window")
}
}
Class SomeClass
{
public void SomeMethod()
{
DebugContentPending += new DebugInfo(HandleContent); //gets events from foo1 and foo2
}
public void HandleContent(string content)
{
//handle messages
}
}
これは可能ですか、それともロッカーから外れていますか?