Variabili di struttura (Visual Basic)

Dopo aver creato una struttura, è possibile dichiarare variabili a livello di routine e a livello di modulo come tale tipo. Ad esempio, è possibile creare una struttura che registra informazioni su un sistema informatico. L'esempio seguente illustra questa operazione.

Public Structure systemInfo
    Public cPU As String
    Public memory As Long
    Public purchaseDate As Date
End Structure

È ora possibile dichiarare variabili di tale tipo, come illustrato nella dichiarazione seguente.

Dim mySystem, yourSystem As systemInfo

Nota

Nelle classi e nei moduli le strutture dichiarate con l'istruzione Dim usano l'accesso pubblico per impostazione predefinita. Se si vuole che una struttura sia privata, assicurarsi di dichiararla usando la parola chiave Private.

Accesso ai valori della struttura

Per assegnare e recuperare valori dagli elementi di una variabile di struttura, si usa la stessa sintassi usata per impostare e ottenere proprietà in un oggetto. L'operatore di accesso ai membri (.) viene inserito tra il nome della variabile di struttura e il nome dell'elemento. Nell'esempio seguente si accede agli elementi delle variabili dichiarate in precedenza come tipo systemInfo.

mySystem.cPU = "486"
Dim tooOld As Boolean
If yourSystem.purchaseDate < #1/1/1992# Then tooOld = True

Assegnazione di variabili di struttura

È anche possibile assegnare una variabile a un'altra se entrambi sono dello stesso tipo di struttura. In questo modo tutti gli elementi di una struttura vengono copiati negli elementi corrispondenti dell'altra, come illustrato nella dichiarazione seguente.

yourSystem = mySystem

Se un elemento della struttura è un tipo riferimento, ad esempio un oggetto String o Object oppure una matrice, viene copiato il puntatore ai dati. Nell'esempio precedente, se in systemInfo fosse stata inclusa una variabile oggetto, il puntatore sarebbe stato copiato da mySystem a yourSystem e una modifica apportata ai dati dell'oggetto tramite una struttura sarebbe stata applicata in caso di accesso tramite l'altra struttura.

Vedi anche