:<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;
}
참고 :이 인라인
으악 :에 모든 방법을 전환,
당신이 다음 한 번만
d
를 사용하는 것처럼, 당신이 그것을 인라인 수 : 그는 약간 너무 널 병합 연산자를 사용하여 간단하게 그것을 호출하는 코드 네가 옳아; 그는 바닐라 EventHandler를 사용하고 있으므로 제네릭이 필요하지 않습니다. 제네릭을 사용하면 성과 측면에서 어떤 페널티가 발생합니까? – gn22글쎄, 당신은 올바른 유형을 구독해야합니다. 따라서 어쨌든 비 전형적인 인스턴스를 만들어야 할 것입니다 ... –
null 통합 연산자 제안. 당신의 마음은 모든 프로그램의 의도를 실제로 고를 수 있습니다. – Hao