Qual è la differenza tra il metodo OnLoad
e l'evento Load
? Sto sviluppando i controlli WinForm. Devo registrarmi all'evento Load
o sostituire il metodo OnLoad
? Quali sono i vantaggi e gli svantaggi di ciascuno?Differenza tra il metodo OnLoad e l'evento Load?
risposta
Vorrei andare a ignorare OnLoad
, in modo da risparmiare i cicli della CPU per richiamare il gestore eventi.
Lo schema generale è di sovrascrivere un metodo, se si eredita da un controllo; altrimenti, iscriviti all'evento.
Ma ricordarsi di chiamare il metodo della classe base 'OnLoad
, perché è qui che è stato richiamato l'evento Load
.
OnLoad è il gestore di eventi predefinito utilizzato in VB.NET per gestire l'evento Load. Generalmente sovrascrivo questo metodo quando devo associare il codice all'evento di caricamento. Esistono anche funzioni predefinite per gli altri eventi Page Life Cycle: OnPreRender, OnInit, ecc.
Oops ... Ho appena realizzato che stavi chiedendo informazioni su winform. Ignorare il collegamento del ciclo di vita della pagina. Lo stesso vale però. – regex
Inoltre, è lo stesso in altri linguaggi .NET, come C# (lo stesso framework .NET era codificato in C#). –
Il metodo OnLoad è quello che solleva l'evento Load. È un modello standard nelle classi framework e generalmente consigliato: per qualsiasi evento Foo
, si dispone di un metodo protetto virtuale OnFoo
che genera tale evento; e nessun altro metodo della classe solleva direttamente l'evento, ma chiama sempre OnFoo
.
Se è necessario gestire l'evento su this
, è in genere più semplice e più veloce ignorare OnFoo
.
Secondo Microsoft, il sovraccarico del metodo OnLoad è la ".. tecnica preferita per gestire l'evento in una ** classe ** derivata" (vedi http://msdn.microsoft.com/en-us/library/system.windows .forms.form.onload.aspx) –
@TroyMoon Non è questo ciò che ha detto Thomas? –