2

我有A类、B类

    class A
    {
        public class B
        {
            public event EventHandler handleClick;
            public void eventraising(object sender, EventArgs e)
            {
                if (handleClick != null)
                    handleClick(this, e);
            }
        }

        //handle raised event here
    }

我怎样才能做到这一点

4

2 回答 2

3

A 类首先需要一个B 的实例。.NET 中的嵌套类只是组织类型的一种方式。它并不意味着实例的任何所有权。

因此,您必须执行以下操作:

class A
{

    private B instanceOfB;

    // constructor
    public A() {
        instanceOfB = new B();
        instanceOfB.handleClick += instanceOfB_handleClick;
    }

    // event handler
    private void instanceOfB_handleClick(object sender, EventArgs e) {
        // blah
    }

    public class B
    {
        public event EventHandler handleClick;
        public void eventraising(object sender, EventArgs e)
        {
            if (handleClick != null)
                handleClick(this, e);
        }
    }

}

此外,您的事件应该只称为 Click,而不是 handleClick。

于 2010-06-23T07:51:27.160 回答
0

您需要 A 中的 B 实例。

class A
{
    B b = new B;

    A()
    {
        b.handleClick += (sender, ev) => { ... }
    }
}
于 2010-06-23T07:50:32.600 回答