----- Original Message ----- From: "Massimo Valle" <maxduepuntozero at
yahoo dot it>
To: "REALbasic NUG Italian" <realbasic-nug dot it at lists dot realsoftware
dot com>
Sent: Friday, December 28, 2007 3:19 PM
Subject: Re: La parola chiave Assigns
On 28/dic/07, at 13:57, Richard Burns wrote:
>la tua osservazione non è sbagliata e, in effetti RB non si comporta
>molto bene in questo caso.
>Però non dimentichiamo che la possibilità di assegnare un parametro
>ad un metodo tramite l'operatore = è quello che viene definito
>syntactic sugar. Cioè un metodo per rendere il codice più leggibile,
>dove invece la funzionalità rimane la stessa.
>Quindi scrivere qualcosa del tipo
>a = LaMiaFunzione = c
>non mi pare più bello di
>a = LaMiaFunzione(c)
>e secondo me viene meno l'utilità di Assigns, mentre a livello di
>compilatore viene comunque ridotto alla forma classica.
Chiarissimo e illuminante.
>In pratica, Assigns viene usato per i metodi che non ritornano nessun
>valore (Sub). Spesso per simulare una proprietà di una classe creando
>un metodo che si comporta come una proprietà.
>Per esempio, volendo rispettare la regola non scritta che ogni classe
>non dovrebbe esporre direttamente le proprietà, si possono creare dei
>metodi "setter" e "getter" per la proprietà in questione (che rimane
>privata) e in questo caso Assigns diventa utile.
>Supponendo di avere una proprietà mNumero si potrà dotare la classe
>dei seguenti metodi
>Sub Numero(assigns n as integer)
> mNumero = numero
>End Sub
>Function Numero() as integer
> return mNumero
>End Funcion
>e sarà quindi possibile continuare ad utilizzare Numero come se fosse
>una proprietà della classe, sintatticamente parlando:
>a = myInstance.Numero
>myInstance.Numero = a
>Spero di avere chiarito un poco.
Grazie sei stao molto chiaro.
Marco.
---------------------------------
---------------------------------
L'email della prossima generazione? Puoi averla con la nuova Yahoo! Mail
|