C#通过构造函数注册事件

时间:2011-08-22 08:49:50

标签: c# events constructor

我有一个正在生成事件的课程。 通常我会注册this.obj.testEvent += new oClass.LogHandler(handleIt);

类oClass有一个包含另一个类的实例的属性。 public class oClass { public qClass qclassobj; }

qClass有一个包含pClass等实例的属性。

当我创建一个oClass实例时,也会创建其他类。

是否可以通过构造函数或类似的方式传递参数,以递归方式注册所有事件(具有相同的名称和属性)? 因此,即使ytime testEvent在其中一个类中生成,handleIt函数也会被调用。

我希望你理解我的问题,感谢任何帮助:)

KR

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,可以使用委托传递:

class RootClass
{
    public event EventHandler<ResolveEventArgs> Resolve;

    public RootClass() { }

    public RootClass(EventHandler<ResolveEventArgs> resolve)
    {
        if (resolve != null)
            Resolve += resolve;
    }
}

class InheritedClass : RootClass
{
    public InheritedClass() { }

    public InheritedClass(EventHandler<ResolveEventArgs> resolve)
        : base(resolve) // Is this what you are looking for?
    {

    }
}