Учитывая код ниже:Как сделать Action <param, param2> совместимым с типом делегата события?
void LookupBox_Load(object sender, EventArgs e)
{
Action d = delegate
{
if (!_p.AutoClose)
CloseLookupBox();
};
if (this.ParentForm.MdiParent != null)
this.ParentForm.MdiParent.Deactivate += delegate { d(); };
else
this.ParentForm.Deactivate += delegate { d(); };
}
Есть ли способ, чтобы опустить делегат {d(); }?
void LookupBox_Load(object sender, EventArgs e)
{
Action<object,EventArgs> d = delegate
{
if (!_p.AutoClose)
CloseLookupBox();
};
if (this.ParentForm.MdiParent != null)
this.ParentForm.MdiParent.Deactivate += d;
else
this.ParentForm.Deactivate += d;
}
Примечание: Я хочу сделать это встроенный
Упс, ты прав; он использует ванильный EventHandler, поэтому я думаю, что общий не требуется. Использует ли общий ролик какой-либо штраф? – gn22
Ну, вам нужно подписаться с нужным типом, так что вам придется создавать неограниченный экземпляр в любом случае ... –
+1 для предложения коллаборации null. ваш ум действительно может понять намерения каждой программы. – Hao