C #: Diferença entre ‘+ = anEvent’ e ‘+ = new EventHandler (anEvent)’

Pegue o código abaixo:

private void anEvent(object sender, EventArgs e) { //some code } 

Qual é a diferença entre o seguinte?

 [object].[event] += anEvent; //and [object].[event] += new EventHandler(anEvent); 

[ATUALIZAR]

Aparentemente, não há diferença entre os dois … o primeiro é apenas açúcar sintático do último.

   

Não há diferença. Em seu primeiro exemplo, o compilador inferirá automaticamente o delegado que você deseja instanciar. No segundo exemplo, você define explicitamente o delegado.

Delegação de delegação foi adicionada em C # 2.0. Então, para projetos C # 1.0, o segundo exemplo foi sua única opção. Para projetos 2.0, o primeiro exemplo usando inferência é o que eu preferiria usar e ver na base de código – já que é mais conciso.

 [object].[event] += anEvent; 

é apenas açúcar sintático para –

 [object].[event] += new EventHandler(anEvent); 

Eu não acho que haja diferença. O compilador transforma o primeiro no segundo.