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

RE: La parola chiave Assigns

To: RealBASIC Nug Italiano <realbasic-nug dot it at lists dot realsoftware dot com>
Subject: RE: La parola chiave Assigns
From: Richard Burns <blu_star100 at yahoo dot it>
Date: Fri, 28 Dec 2007 20:14:03 +0100 (CET)
Delivered-to: listarchive at realsoftware dot com
Delivered-to: realbasic-nug dot it at lists dot realsoftware dot com
 
  ----- 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


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