正在使用封装的成员事件

本文关键字:成员 事件 封装 | 更新日期: 2023-09-27 18:23:37

我正在尝试组合一个封装的成员事件。让我解释一下。我有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);
    }
}

我该怎么做?谢谢

正在使用封装的成员事件

如果objA的SaveProgress事件仅转发到MyClassB类的事件,则可以使用以下命令:

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