我有以下代碼與3個不同的類。我正在嘗試 從類B訂閱事件到 類ControlSystem中定義的方法(事件處理程序)。所有編譯好,它沒有問題,但事件處理程序方法從來沒有觸發......我做錯了什麼?C#訂閱事件
namespace EventTest
{
public class ControlSystem : CrestronControlSystem
{
A myObject = new A();
public ControlSystem(): base()
{
Thread.MaxNumberOfUserThreads = 100;
// Subscribe Event
myObject.mySubObject.BEvent += HandleBEvent;
// Throw Event
myObject.mySubObject.ThrowEvent();
}
public override void InitializeSystem()
{
}
public void HandleBEvent(object sender, EventArgs args)
{
Console.WriteLine("Something happend to {0}", sender);
}
}
public class A
{
public B mySubObject;
public A()
{
mySubObject = new B();
}
}
public class B
{
public EventHandler BEvent;
public B(){}
public void ThrowEvent()
{
EventHandler handler = BEvent;
if (handler != null)
{
handler(this, EventArgs.Empty);
}
}
}
}
下面的實際代碼鏈接(它適用於嵌入式系統,所以你將無法編譯它)。想法是按下按鈕觸發一個事件,可能會發生其他UI發生的事件。
感謝
你想要什麼時候觸發事件? –
代碼適用於我。 [檢查你自己](http://ideone.com/1eEhfF)。你需要提供一個代碼來重現你正在談論的問題。 –
那麼,那麼沒有問題? –