Procedura: creare una proprietà (Visual Basic)

È possibile racchiudere una definizione di proprietà tra un'istruzione Property e un'istruzione End Property. All'interno di questa definizione viene definita una routine Get, una routine Set o entrambe. Tutto il codice della proprietà si trova all'interno di queste routine.

La routine Get recupera il valore della proprietà, mentre la routine Set archivia un valore. Se si vuole che la proprietà abbia accesso in lettura/scrittura, è necessario definire entrambe le routine. Per una proprietà di sola lettura viene definita solo la routine Get, mentre e per una proprietà di sola scrittura viene definita solo quella Set.

Per creare una proprietà

  1. All'esterno di qualsiasi proprietà o routine, usare un'istruzione Property, seguita da un'istruzione End Property.

  2. Se la proprietà accetta parametri, aggiungere il nome della routine dopo la parola chiave Property, seguito dall'elenco dei parametri tra parentesi.

  3. Dopo le parentesi aggiungere una clausola As per specificare il tipo di dati del valore della proprietà. È necessario specificare il tipo di dati anche per una proprietà di sola scrittura.

  4. Aggiungere le routine Get e Set, in base alle esigenze. Vedere le indicazioni seguenti.

Per creare una routine Get che recupera un valore di proprietà

  1. Tra le istruzioni Property e End Property scrivere un'istruzione Get, seguita da un'istruzione End Get. Non è necessario definire parametri per la routine Get.

  2. Inserire le istruzioni di codice per recuperare il valore della proprietà tra le istruzioni Get e End Get. Questo codice può includere altri calcoli e manipolazioni dei dati oltre a generare e restituire il valore della proprietà.

  3. Usare un'istruzione Return per restituire il valore della proprietà al codice chiamante.

È necessario scrivere una routine Get per una proprietà di lettura/scrittura e per una proprietà di sola lettura. Non è necessario definire una routine Get per una proprietà di sola scrittura.

Per creare una routine Set che scrive il valore di una proprietà

  1. Tra le istruzioni Property e End Property scrivere un'istruzione Set, seguita da un'istruzione End Set.

  2. Nell'istruzione Set è possibile aggiungere facoltativamente un elenco di parametri tra parentesi dopo la parola chiave Set. Se l'elenco di parametri non è presente o è vuoto, viene definito un parametro implicito denominato Value, il cui tipo è il tipo della proprietà stessa. Se l'elenco di parametri non è vuoto, è possibile usare un nome diverso, se opportuno, purché il tipo di dati del parametro sia lo stesso della proprietà stessa.

  3. Inserire le istruzioni di codice per archiviare un valore nella proprietà tra le istruzioni Set e End Set. Questo codice può includere altri calcoli e manipolazioni dei dati oltre a convalidare e archiviare il valore della proprietà.

  4. Usare il parametro Value per accettare il valore fornito dal codice chiamante. È possibile archiviare questo valore direttamente in un'istruzione di assegnazione oppure in un'espressione per calcolare il valore interno da archiviare.

È necessario scrivere una routine Set per una proprietà di lettura/scrittura e per una proprietà di sola scrittura. Non è necessario definire una routine Set per una proprietà di sola lettura.

Esempio

Nell'esempio seguente viene creata una proprietà di lettura/scrittura che archivia un nome completo come due nomi costituenti, il nome e il cognome. Quando il codice chiamante legge fullName, la routine Get combina i due nomi costituenti e restituisce il nome completo. Quando il codice chiamante assegna un nuovo nome completo, la routine Set prova a suddividerlo in due nomi costituenti. Se non trova uno spazio, lo archivia tutto come nome.

Dim firstName, lastName As String
Property fullName() As String
    Get
      If lastName = "" Then
          Return firstName
      Else
          Return firstName & " " & lastName
      End If

    End Get
    Set(ByVal Value As String)
        Dim space As Integer = Value.IndexOf(" ")
        If space < 0 Then
            firstName = Value
            lastName = ""
        Else
            firstName = Value.Substring(0, space)
            lastName = Value.Substring(space + 1)
        End If
    End Set
End Property

Nell'esempio seguente vengono illustrate le chiamate tipiche alle routine di proprietà di fullName. La prima chiamata imposta il valore della proprietà e la seconda la recupera.

fullName = "MyFirstName MyLastName"
MsgBox(fullName)

Vedi anche