I metodi Get e Set delle classi in Visual Basic

Nel linguaggio Visual Basic i metodi get e set sono proprietà delle classi che permettono rispettivamente di leggere e modificare i valori dei campi di un oggetto della classe.

I metodi get e set vanno definiti nella classe e sono ereditati dagli oggetto quando viene istanziato alla classe.

Sono anche detti funzioni di accesso (o accessor).

Nota. Essendo metodi predefiniti della classe, i metodi get e set sono proprietà della classe.

    Un esempio pratico

    Questa semplice classe ha una variabile interna _nomevar del tipo Private ( riga 2) che non può essere né letta, né modificata dall'esterno.

    1. Public Class nomeclasse
    2. Private _nomevar As String
    3. Public Sub New()
    4. _nomevar="prova"
    5. End Sub
    6. Public Property Nome As String
    7. Get
    8. Return _nomevar
    9. End Get
    10. Set (ByVal valore As String)
    11. _nomevar=valore
    12. End Set
    13. End Property
    14. End Class

    Per leggere e modificare il valore della variabile interna _nomevar definisco una proprietà pubblica Nome ( righe 6-13 ) con i metodi get ( righe 7-9 ) in rosso e set ( righe 10-12 ) in blu.

    Istanzio un oggetto alla classe

    Per semplicità lo chiamo nomeoggetto ma potrei chiamarlo in qualsiasi altro modo.

    Dim nomeoggetto As New nomeclasse()

    L'oggetto eredita i campi (_nomevar), il metodo costruttore New e i metodi (get, set) della proprietà pubblica Nome.

    Al momento dell'istanza il metodo costruttore New assegna automaticamente alla variabile interna _nomevar il valore "prova".

    Per modificare la variabile interna _nomevar utilizzo i metodi Get e Set della proprietà pubblica Nome.

    Quando interrogo la proprietà pubblica Nome dell'oggetto

    console.writeln(nomeoggetto.Nome)

    viene invocato il metodo get che legge e restituisce tramite l'istruzione return (riga 8) il contenuto della variabile interna _nomevar.

    prova

    Quando modifico la proprietà Nome dell'oggetto

    nomeoggetto.Nome="prova2"

    viene invocato il metodo set che assegna il nuovo valore ("prova2") alla variabile interna _nomevar (riga 11).

    Esempio 2 ( codice alternativo )

    Quando una classe ha molti campi, definire le proprietà get e set per ciascuna può diventare scomodo.

    Il linguaggio Visual Basic permette di ottenere lo stesso risultato in questo modo alternativo:

    1. Public Class nomeclasse
    2. Public Property Nome As String = "prova"
    3. End Class

    Con una sola riga (riga 2) definisco una Public Property chiamata Nome e gli assegno il valore di default "prova".

    Non definisco i metodi get e set della proprietà, ci penserà il compilatore a farlo.

    Nota. In questo secondo esempio ho eliminato la variabile interna _nomevar e l'ho sostituita con la proprietà pubblica Nome.

    Quando istanzio un oggetto alla classe, l'oggetto eredita il campo Nome (proprietà pubblica) e i metodi (get e set) aggiunti automaticamente dal compilatore.

    Dim nomeoggetto As New nomeclasse()

    Essendo una proprietà di tipo pubblico (Public Property) posso leggere direttamente il contenuto del campo Nome

    console.writeln(nomeoggetto.Nome)

    e scrivere il contenuto

    nomeoggetto.Nome="prova2"

    E' decisamente una via più sintetica rispetto all'esempio precedente.

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Le classi in Visual Basic