消耗封装的成员事件

时间:2012-02-06 21:15:01

标签: c#

我试图推荐一个封装的成员事件。让我解释。我有MyClassA,它有一个MyClassB _obj的私有成员:

public class MyClassA
{
    private MyClassB _obj;
    public MyClassA()
    {
        _obj = new MyClassB();
    }
}

MyClassB有SaveProgress事件。

对于客户端应用程序,MyClassB是不可见的。我们需要通过MyClassA来处理它的事件:

public partical class _Default: System.Web.UI.Page
{
    protected void button1_Click(object sender, EventArgs e)
    {
        MyClassA objA = new MyClassA();
        // We need to handle it's event through MyClassA
        // objA.SaveProgress += new EventHandler<SaveProgressEventArgs>(objA_SaveProgress);
    }
}

我该怎么做?感谢。

1 个答案:

答案 0 :(得分:2)

如果objA的SaveProgress事件只转发给MyClassB类的事件,那么你可以使用它:

public event EventHandler<SaveProgressEventArgs> SaveProgress
{
    add
    {
           lock(_obj.Event)
                _obj.Event += value;
    }
    remove
    {
           lock(_obj.Event)
           _obj.Event  -= value;
    }
}