Forum - C# / VB.NET
- Dubbio sull'utilizzo di Component.Events
()
Newbie
Messaggi:
Iscritto:
|
EDIT (ho risolto):
allora, per una volta devo dare la colpa della mia confusione da MSDN che prima scrive una cosa e poi ne fa un'altra
Basti guardare questo articolo:
http://msdn.microsoft.com/en-us/library/yt1k2w4e.aspx
Ogni evento ha un suo object key, peccato che però la definizione di key dell'AddHandler (e RemoveHandler) dica tutt'altra cosa
Ciao a tutti,
negli ultimi giorni stavo creando un componente non visuale perciò mi stavo informando su tutte le cose da fare.
Ho però notato che Component, la mia superclasse, espone una proprietà il cui scopo non mi è chiaro.
MSDN non ne parla molto, se volete vedere, questo è il link:
http://msdn.microsoft.com/en-us/library/system.componentmo ...
Io immagino che l'EventHandlerList ritornato serva per distruggere tutti gli eventi e che quindi il suo metodo Dispose() venga richiamato da quello di Component.
Purtroppo, come ho già detto, non trovo documentazione e quindi le mie sono solo supposizioni
Qualcuno può illuminarmi?
Inoltre vorrei avere un'altra conferma:
quando chiamo AddHandler o RemoveHandler dell'oggetto ritornato da Events, al parametro key devo passare l'instanza della mia classe (this o Me per intenderci)?
Grazie a chiunque si prenda la briga di rispondermi
EDIT (per Totem):
quindi dovrei scrivere una cosa simile? ([...] indica che non ho voglia di scrivere tutto il codice necessario)
Codice sorgente - presumibilmente C# |
public class MyComponent:Component { [...] public event EventHandler MyEvent { add { [...] Events.AddHandler(this, value); } remove { [...] Events.RemoveHandler(this, value); } } [...]
|
Comunque avevo letto la descrizione di AddHandler solo che ero indeciso se passare l'oggetto dove è dichiarato l'evento o quello che ha il metodo handler
Ultima modifica effettuata da il 12/08/2011 alle 0:53 |
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Si tratta semplicemente di una collezione che espone i gestori di evento associati agli eventi del componenti. Nota bene che non tutti gli eventi sono gestiti, quindi si tratta di un sottoinsieme dei delegati d'evento del componente stesso. E' utile perché mostra quali eventi vengono gestiti, da quanti metodi e da quali metodi. Inoltre, come hai detto, può anche essere usato per rilasciare correttamente gli handlers quando l'istanza viene distrutta, onde generare memory leaks.
Per quanto riguarda AddHandlers:
http://msdn.microsoft.com/en-us/library/system.componentmo ...
Come vedi c'è scritto:
key
Type: System.Object
The object that owns the event. |
|
|
Usa i commenti per chiedere spiegazioni o ringraziare le risposte. |
|
|