Я создал внешний класс (TheClass
) с событием (TheEvent
) и подписался на него из конструктора Panel другого класса:
public aPanel()
{
...
theClassInstance.TheEvent += new WaitCallback(aMethod);
...
}
Позже в программе я вызываюметод, передавая theClassInstance
в качестве единственного параметра
bMethod((object)theClassInstance);
, где
public void bMethod(object inputTheClassInstance)
{
...
}
Зная, что входной объект имеет тип TheClass
, я делаю следующее:
public void bMethod(object inputTheClassInstace)
{
TheClass theClassInput = (TheClass)inputTheClassInstace;
...
}
Позже в bMethod()
я вызываю метод RaiseEvent()
, предоставляемый theClassInput
, который фактически вызывает событие.В RaiseEvent()
у меня есть
if(this.TheEvent != null)
TheEvent();
, чтобы убедиться, что что-то подписано на событие, но this.TheEvent
равно нулю.Если я размещу подписку в пределах bMethod()
bMethod(...)
{
...
theClassInput.TheEvent += new WaitCallback(aMethod);
...
}
, она будет работать нормально, но я бы хотел оставить ее в конструкторе Panel.Я подумал, что, поскольку theClassInput
указывает на тот же объект, что и theClassInstance
, это не будет иметь значения, которое вызывает событие.Любые мысли о том, как сохранить подписку в конструкторе при вызове из bMethod()
, используя theClassInput
?