VB 2010: proprietà autoimplementate

Finora potevamo definire una proprietà solamente nel modo completo, indicando le sezioni Get e Set, anche se l’unica funzione di tali sezioni era assegnare e leggere la variabile interna:

Visual Basic
  1.   Private _miaProprieta As String
  2.   Public Property miaProprieta() As String
  3.     Get
  4.       Return _miaProprieta
  5.     End Get
  6.     Set(ByVal Value As String)
  7.       _miaProprieta = Value
  8.     End Set
  9.   End Property

In effetti, anche lo snippet specifico per le proprietà, che si inserisce scrivendo Property in una riga vuota e premendo il tasto per la tabulazione, definisce il seguente codice (con gli opportuni segnaposti per l’inserimento dei nomi desiderati):

Visual Basic
  1.   ' snippet Property
  2.   Private newPropertyValue As String
  3.   Public Property NewProperty() As String
  4.     Get
  5.       Return newPropertyValue
  6.     End Get
  7.     Set(ByVal value As String)
  8.       newPropertyValue = value
  9.     End Set
  10.   End Property

Ora, se non abbiamo la necessità di specificare ulteriore codice all’interno delle sezioni Get e Set, possiamo definire una proprietà in modo abbreviato:

Visual Basic
  1. Public Property miaProprieta As String

 

Questo stesso codice si ottiene utilizzando la nuova funzione per l’autogenerazione delle proprietà.

Con la stessa istruzione possiamo anche assegnare un valore alla proprietà:

Visual Basic
  1. Public Property miaProprieta As String = "Semplice vero?"

 

L’aspetto interessante di questa nuova implementazione è dato dal fatto che viene definita, in modo implicito, una variabile privata con lo stesso nome della proprietà, prefissato dal carattere underscore ("_"). Nel caso dell’esempio che abbiamo appena fatto, quindi, viene definita una variabile privata di tipo String e di nome _miaProprieta.

Questo automatismo è dimostrato dall’errore che viene visualizzato da IntelliSense quando definiamo a nostra volta una variabile con lo stesso nome.

Rimane l’obbligo di scrivere per esteso la definizione delle proprietà a sola lettura o a sola scrittura, dato che è necessario specificare tali caratteristiche con le parole riservate ReadOnly e WriteOnly:

Visual Basic
  1.   ' proprieta' a sola lettura
  2.   Private _propReadOnly As Integer
  3.   Public ReadOnly Property CountDown() As Integer
  4.     Get
  5.       _propReadOnly -= 1
  6.       Return _propReadOnly
  7.     End Get
  8.   End Property
  9.  
  10.   ' proprieta' a sola scrittura
  11.   Public WriteOnly Property NumeroCartaCredito() As Integer
  12.     Set(ByVal value As Integer)
  13.       _propReadOnly = value
  14.     End Set
  15.   End Property

Nel primo esempio illustrato la proprietà può essere letta ma non modificata, dato che un conto alla rovescia deve essere gestito solo internamente al programma. D’altro canto, nel secondo caso la proprietà può essere valorizzata ma non letta dall’esterno, visto che nessuno vorrebbe che qualcun altro fosse in grado di leggere il numero di carta di credito da noi inserito.

Annunci

Pubblicato il 26 giugno 2011 su Novità. Aggiungi ai preferiti il collegamento . Lascia un commento.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: