Qual é a diferença entre eventos com delegados manipuladores e aqueles sem?

StackOverflow https://stackoverflow.com/questions/119160

  •  02-07-2019
  •  | 
  •  

Pergunta

Qual é a diferença entre esta:

this.btnOk.Click += new System.EventHandler(this.btnOK_Click);

e isso?

this.btnOk.Click += this.btnOK_Click;

Ambos trabalham. O primeiro é que o Visual padrões Estúdio para quando você usa os trechos. Mas parece que apenas os anúncios extra de palavreado, ou estou faltando alguma coisa?

Foi útil?

Solução

Não há diferença. Omitindo a instanciação delegado é apenas doces sintaxe; o compilador C # gerará a instanciação delegado para você sob o capô.

Outras dicas

Em C # 3.0 e posterior este é nenhuma diferença. Antes de C foram obrigados # 3.0 EventHandlers devido às limitações do compilador, mas com o advento do C # 3.0, a segunda forma é preferível a menos que você quer ser muito explícito.

Eu acredito que C # desde 3.0 adicionou implicitamente o delegado manipulador. No entanto, ele pode ajudar a ser mais explícito, especialmente quando há vários tipos possíveis de delegados.

"+ = Delegate_Name" é um açúcar de sintaxe. Compilador criará nova embalagem para você.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top