realbasic-nug.it
[Top] [All Lists]

Re: Comportamento normale, bizzarro o bug delle computed property?

To: REALbasic NUG Italian <realbasic-nug dot it at lists dot realsoftware dot com>
Subject: Re: Comportamento normale, bizzarro o bug delle computed property?
From: Giovanni Gualeni <ggualeni at tiscali dot it>
Date: Thu, 29 Nov 2007 12:27:34 +0100
Delivered-to: listarchive at realsoftware dot com
Delivered-to: realbasic-nug dot it at lists dot realsoftware dot com
References: <2CB96CDB-0313-4C48-B523-9FFD98CDD9A4 at menssana dot to dot it> <FF7DE1A1-7CF5-4060-AB3C-C1195CFECBC1 at yahoo dot it> <D6EA9DDD-B439-4308-A4D5-5378FC5E5556 at menssana dot to dot it> <7A2E9204-BFEB-4B42-9BE5-7318A67A775A at yahoo dot it>
Il giorno 29/nov/07, alle ore 11:51, 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.

Nel file la data non viene istanziata (in P1), come fai a correggerla se non e' ancora attiva?
Cmq mi spiegate l'utilita' di un giro tanto complicato

Giovanni

<Prev in Thread] Current Thread [Next in Thread>