C # регистрация на событие через конструктор - PullRequest
0 голосов
/ 22 августа 2011

У меня есть класс, который генерирует событие.Обычно я регистрируюсь с this.obj.testEvent += new oClass.LogHandler(handleIt);

У класса oClass есть свойство, содержащее экземпляр другого класса.public class oClass { public qClass qclassobj; }

И у qClass есть свойство, содержащее экземпляр класса pClass и т. Д.

Когда я создаю экземпляр класса oClass, также создаются другие классы.

ЭтоМожно ли рекурсивно регистрировать все события (которые имеют одинаковые имена и атрибуты), передавая параметр через конструктор или что-то в этом роде?Так что когда-нибудь testEvent генерируется в одном из классов, который вызывается функцией handleIt.

Я надеюсь, вы понимаете мой вопрос, любая помощь приветствуется:)

KR

1 Ответ

1 голос
/ 22 августа 2011

Если я правильно понимаю ваш вопрос, вы можете передать его с помощью делегата:

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?
    {

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...