Condividi tramite


Tipo di dati definito dall'utente

Aggiornamento: novembre 2007

Contiene dati nel formato definito dall'istruzione Structure.

Le versioni precedenti di Visual Basic supportano il tipo definito dall'utente, mentre la versione corrente lo espande in una struttura. Una struttura rappresenta una concatenazione di uno o più membri di vari tipi di dati. In Visual Basic una struttura viene considerata come una singola unità, anche se è possibile accedere ai relativi membri singolarmente.

Note

Definire e utilizzare un tipo di dati in formato struttura quando è necessario combinare diversi tipi di dati in una singola unità oppure quando nessuno dei tipi di dati elementari soddisfa le esigenze specifiche.

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

Formato della dichiarazione

Una dichiarazione di struttura inizia con l'Istruzione Structure e termina con l'istruzione EndStructure. Nell'istruzione Structure è presente il nome della struttura, che corrisponde anche all'identificatore del tipo di dati definito dalla struttura. Tale identificatore può essere utilizzato da altre parti del codice per dichiarare variabili, parametri e valori restituiti da funzioni come appartenenti al tipo di dati della struttura.

Le dichiarazioni contenute tra le istruzioni Structure ed EndStructure definiscono i membri della struttura.

Livelli di accesso ai membri

È necessario dichiarare ciascun membro utilizzando un'Istruzione Dim (Visual Basic) o un'istruzione in cui venga specificato il livello di accesso, ad esempio Public (Visual Basic), Friend (Visual Basic) o Private (Visual Basic). Se si utilizza un'istruzione Dim, il livello di accesso predefinito è Public.

Suggerimenti per la programmazione

  • Consumo di memoria. Come nel caso di tutti i tipi di dati compositi, il calcolo del consumo di memoria totale di una struttura in base alla somma delle allocazioni di memoria nominali dei relativi membri presenta alcuni rischi. Non è inoltre possibile supporre con certezza che l'ordine di archiviazione in memoria corrisponda esattamente 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 Visual Basic.

  • Conversione verso un tipo di dati più grande. Non è prevista alcuna conversione automatica da o verso un qualsiasi tipo di dati in formato struttura. Per definire gli operatori di conversione sulla struttura, è possibile utilizzare l'Istruzione Operator e dichiarare ciascun operatore come Widening o Narrowing.

  • Caratteri tipo. I tipi di dati in formato struttura non hanno alcun carattere di tipo letterale o carattere identificatore di tipo.

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

Esempio

Nell'esempio riportato di seguito viene illustrato il profilo 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

Concetti

Utilizzo efficiente dei tipi di dati

Riferimenti

Riepilogo dei tipi di dati (Visual Basic)

ValueType

Funzioni di conversione del tipo

Riepilogo della conversione

Istruzione Structure

Conversione verso un tipo di dati più grande

Conversione verso un tipo di dati più piccolo

StructLayoutAttribute

Altre risorse

Strutture: tipi di dati dell'utente