事件 - 发布和订阅

m R*_*Raj 0 c#

当我调用这个button_click方法时,我希望调用mymethod().目前没有任何事情发生.我知道我犯了一个错误.但不知道如何继续.有什么指针吗?

public class Program1
{
    static void Main(string[] args)
    {

        B b = new B();
        b.Button_Click();


    }


}

class A
{
    B b;

    public A(B b)
    {
        this.b = b;
        // subscribe to event
        b.SomethingHappened += MyMethod;
    }

    private void MyMethod() { }
}

class B
{
    // declare event
    public event Action SomethingHappened;

    public void Button_Click()
    {
        // raise event
        if (SomethingHappened != null)
            SomethingHappened();

        SomeMethod();
    }

    public void SomeMethod() { }
}
Run Code Online (Sandbox Code Playgroud)

当我调用这个button_click方法时,我希望调用mymethod().目前没有任何事情发生.我知道我犯了一个错误.但不知道如何继续.有什么指针吗?

ela*_*con 5

您没有发起新A订阅您的B对象:

B b = new B();
A a = new A(b);
A a1 = new A(b);  
A a2 = new A(b); // multiple subscribers to the same publisher
b.Button_Click();
Run Code Online (Sandbox Code Playgroud)