簡體   English   中英

C#訂閱事件

[英]C# Subscribing an Event

我有以下帶有3個不同類的代碼。 我試圖將事件從類B訂閱到類ControlSystem中定義的方法(事件處理程序)。 所有的編譯都可以,但沒有問題,但是事件處理程序方法從未觸發過……我在做什么錯?

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/NJz2Ek

謝謝

您缺少事件關鍵字。

public event EventHandler BEvent;

需要在那里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM