On 29/nov/07, at 10:39, Fabio Soggia wrote:
Dunque, il problema è che:
- se uso il p2 mi cambia la data e l'evento set viene richiamato
- se uso il p1 mi cambia la data, ma l'evento set NON viene richiamato
Ho cercato nei feddback. non trovando nulla.
Potete dirmi se è un comportamento normale che io ignoro, come
tante altre cose, oppure se è un difetto?
Grazie, Fabio
ps: se serve posso inviare per mail il progetto
Direi che è un comportamento normale.
I metodi Get e Set della shared property si riferiscono ad un oggetto
di tipo data e si attivano quando tu "chiedi" o assegni l'oggetto.
Nel caso p2 il metodo Set viene richiamato perchè tu stai
effettivamente assegnando un nuovo valore all'oggetto
"data_corrente" (ma sarebbe più corretto dire un nuovo riferimento
trattandosi di un oggetto e non di un data type intrinseco come una
stringa).
Nel caso p1 tu stai cambiando le proprietà dell' oggetto, ma non
l'oggetto stesso. Quindi se ci fai caso viene invocato il metodo Get
per ogni volta che tu imposti un proprietà dell'oggetto. Questo
perchè richiami la proprietà.
Per riassumere, con p2 assegni effettivamente la proprietà, mentre
con p1 manipoli solo le proprietà dell'istanza esistente.
Onde evitare di finire in ragionamenti da OOP di questo tipo, ti
consiglio di usare come shared properties solo dei data type
intrinsechi come integer, string, ecc.
Non che quello che fai tu sia scorretto, ma richiede una valutazione
accurata delle conseguenze. Come hai visto, usando la tua proprietà
in un modo piuttosto che in un altro fa differenza.
Massimo Valle
|