On 29/nov/07, at 11:38, Fabio Soggia wrote:
Grazie della risposta.
A parte il fatto che non si parlava di shared properies, ma di
computed properies, ma credo sia un refuso ripetuto, il mio
problema rimane: come faccio a invocare un evento al cambiare del
valore dell'istanza dell'oggetto? È possibbbbile?
Fabio
Il giorno 29/nov/07, alle ore 11:08, Massimo Valle ha scritto:
...
Hai ragione, parlavamo di computed properties.
Per risolvere il tuo problema è sufficiente creare una sottoclasse di
Date dove definisci alcuni metodi tipo:
Function GetMonth() as Integer
// fai quello che ti pare
return self.month
End Function
Sub SetMonth(theMonth as Integer)
// fai quello che ti pare
self.month = theMonth
End Sub
e così via per le altre proprietà.
A questo punto, puoi usare la tua sottoclasse invece di Date e,
quando ti serve ottenere la proprietà Month, usi invece GetMonth e se
devi assegnarla usi SetMonth.
Purtroppo nella classe Date, le proprietà Month, Day, ecc. sono per
l'appunto proprietà. Se fossero stati metodi avresti potuto fare
l'override direttamente ridefinendo un metodo Month nella tua
sottoclasse. Invece essendo proprietà devi per forza usare dei metodi
accessori.
In teoria potresti definire un metodo che si chiama Month che va a
coprire la proprietò della super classe, ma questa tecnica (che si
chiama "shadowing") non è una buona pratica e potrebbe portare problemi.
Massimo
|