Condividi tramite


Procedura: Creare una proprietà (Visual Basic)

Racchiudere una definizione di proprietà tra un'istruzione Property e un'istruzione End Property . All'interno di questa definizione si definisce una Get routine, una Set routine o entrambe. Tutto il codice della proprietà si trova all'interno di queste procedure.

La Get routine recupera il valore della proprietà e la Set routine archivia un valore. Se si desidera che la proprietà abbia accesso in lettura/scrittura, è necessario definire entrambe le procedure. Per una proprietà di sola lettura, si definiscono solo Gete per una proprietà di sola scrittura si definisce solo Set.

Per creare una proprietà

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

  2. Se la proprietà accetta parametri, seguire la Property parola chiave con il nome della routine, quindi l'elenco dei parametri tra parentesi.

  3. Seguire le parentesi con la 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 Get e Set procedure, in base alle esigenze. Vedere le indicazioni seguenti.

Per creare una procedura 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 Get procedura.

  2. Inserire le istruzioni di codice per recuperare il valore della proprietà tra le dichiarazioni 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 procedura per una Get proprietà di lettura/scrittura e per una proprietà di sola lettura. Non è necessario definire una Get routine 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, si può facoltativamente seguire la parola chiave Set con un elenco di parametri tra parentesi. 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 appropriato, ma il parametro deve avere lo stesso tipo di dati 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 usarlo in un'espressione per calcolare il valore interno da archiviare.

È necessario scrivere una procedura per una Set proprietà di lettura/scrittura e per una proprietà di sola scrittura. Non è necessario definire una Set routine 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 costitutivi, 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 tenta di 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)

Vedere anche