Condividi tramite


tipo di dati User-Defined

Contiene i dati in un formato definito. L'istruzione Structure definisce il formato.

Le versioni precedenti di Visual Basic supportano il tipo definito dall'utente (UDT). La versione corrente espande il tipo definito dall'utente a 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 ai relativi membri singolarmente.

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 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 che la struttura sta definendo. Altre parti del codice possono usare questo identificatore per dichiarare variabili, parametri e valori restituiti dalla funzione in modo che siano di questo tipo di dati della struttura.

Le dichiarazioni tra le Structure istruzioni 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, Friend o Private. Se si usa un'istruzione Dim , per impostazione predefinita il livello di accesso è pubblico.

Suggerimenti per la programmazione

  • Utilizzo della memoria. Come per tutti i tipi di dati compositi, non è possibile calcolare in modo sicuro il consumo totale di memoria di una struttura aggiungendo insieme le allocazioni di archiviazione nominale dei relativi membri. Inoltre, non è 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 interagisce con i componenti non scritti per .NET Framework, ad esempio oggetti AUTOMATION o COM, tenere presente che i tipi definiti dall'utente in altri ambienti non sono compatibili con i tipi di struttura di Visual Basic.

  • Ampliamento. Non esiste alcuna conversione automatica in o da qualsiasi tipo di dati della struttura. È possibile definire gli operatori di conversione nella struttura usando l'istruzione Operator ed è possibile dichiarare ogni operatore di conversione come Widening o Narrowing.

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

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

Esempio

Il paradigma seguente illustra la struttura 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

Vedere anche