On 28/dic/07, at 13:57, Richard Burns wrote:
Salve tutti.
E' la prima volta che scrivo in questa lista, e volevo porvi il
seguente quesito:
Sul manuale utente del RealBasic viene spiegato a pagina 304
l'utilizzo della
parola chiave Assigns.
Ciao Marco,
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.
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.
Massimo Valle
|