Condividi tramite


Tipo di dati definito dall'utente

Contiene i dati in un formato definito dall'utente. L'istruzione Structure consente di definire il formato.

Le versioni precedenti di Visual Basic supportano il tipo definito dall'utente (UDT). La versione corrente espande il tipo definito dall'utente (UDT) in una struttura. Una struttura è una concatenazione di uno o più membri di vari tipi di dati. Visual Basic considera una struttura come una singola unità, anche se è anche possibile accedere singolarmente ai relativi membri.

Osservazioni:

Definire e usare un tipo di dati struttura quando è necessario combinare vari tipi di dati in una singola unità o quando nessuno dei tipi di dati elementari soddisfa le proprie esigenze.

Il valore predefinito di un tipo di dati struttura è costituito dalla combinazione dei valori predefiniti di ognuno dei relativi membri.

Formato della dichiarazione

Una dichiarazione di struttura inizia con l'istruzione Structure e termina con l'istruzione End Structure. L'istruzione Structure fornisce il nome della struttura, che è anche l'identificatore del tipo di dati definito dalla struttura. Altre parti del codice possono usare questo identificatore per dichiarare variabili, parametri e valori restituiti dalla funzione in modo che usino il tipo di dati di questa struttura.

Le dichiarazioni tra le istruzioni Structure e End Structure definiscono i membri della struttura.

Livelli di accesso ai membri

È necessario dichiarare ogni membro usando un'istruzione Dim o un'istruzione che specifica il livello di accesso, ad esempio Public, Friendo Private. Se si usa un'istruzione Dim, per impostazione predefinita il livello di accesso è Public.

suggerimenti per la programmazione

  • Consumo di memoria. Come per tutti i tipi di dati compositi, non è possibile calcolare in modo sicuro il consumo totale di memoria di una struttura sommando le allocazioni di archiviazione nominale dei relativi membri. Non è inoltre possibile presupporre in modo sicuro che l'ordine di archiviazione in memoria corrisponda all'ordine di dichiarazione. Se è necessario controllare il layout di archiviazione di una struttura, è possibile applicare l'attributo StructLayoutAttribute all'istruzione Structure.

  • Considerazioni sull'interoperabilità. Se si prevede l'interazione con componenti non scritti per .NET Framework, ad esempio oggetti COM o di automazione, tenere presente che i tipi definiti dall'utente in altri ambienti non sono compatibili con i tipi di struttura di Visual Basic.

  • Widening. Non esiste alcuna conversione automatica da o verso qualsiasi tipo di dati struttura. È possibile definire operatori di conversione per la struttura usando l'istruzione Operator, nonché dichiarare ogni operatore di conversione come Widening o Narrowing.

  • Caratteri tipo. I tipi di dati struttura non hanno caratteri di tipo letterale o di tipo identificatore.

  • Tipo in .NET Framework. Non esiste alcun tipo corrispondente in .NET Framework. Tutte le strutture ereditano dalla classe System.ValueType di .NET Framework, ma nessuna struttura singola corrisponde a System.ValueType.

Esempio

Il paradigma seguente illustra lo schema della dichiarazione di una struttura.

[Public | Protected | Friend | Protected Friend | Private] Structure structname
    {Dim | Public | Friend | Private} member1 As datatype1
    ' ...
    {Dim | Public | Friend | Private} memberN As datatypeN
End Structure

Vedi anche