Domanda

Qual è la differenza tra questo:

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

e questo?

this.btnOk.Click += this.btnOK_Click;

Entrambi funzionano. Il primo è quello predefinito di Visual Studio quando si utilizzano i frammenti. Ma sembra solo annunci pubblicitari extra, o mi sto perdendo qualcosa?

È stato utile?

Soluzione

Nessuna differenza. Omettere l'istanza del delegato è solo caramella di sintassi; il compilatore C # genererà l'istanza del delegato per te sotto il cofano.

Altri suggerimenti

In C # 3.0 e versioni successive questa non è una differenza. Prima che EventHandlers di C # 3.0 fossero richiesti a causa delle limitazioni del compilatore, ma con l'avvento di C # 3.0, il secondo modulo è preferito a meno che tu non voglia essere molto esplicito.

Credo che C # dalla 3.0 abbia aggiunto implicitamente il gestore delegato. Tuttavia, può essere più esplicito, soprattutto in presenza di più tipi di delegati possibili.

" + = Delegate_Name " è uno zucchero sintattico. Il compilatore creerà un nuovo wrapper per te.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top