Tipi anonimi in Visual Basic

Il linguaggio Visual Basic mi permette di definire dei tipi di di dati anonimi (anonymous type). Sono detti "anonimi" perché non hanno un nome identificativo dichiarato esplicitamente.

Il nome del tipo di dati è generato automaticamente dal compilatore. Lo sviluppatore non lo conosce.

Come funziona

Il compilatore riconosce il tipo di dato per inferenza (type inference) in base ai valori che assegno all'oggetto.

A cosa serve

Mi permette di definire le variabili e gli oggetti in modo più sintetico e con meno righe di codice.

Tuttavia, rende il codice sorgente del programma meno leggibile a colpo d'occhio.

    Come creare un tipo di dato anonimo

    Nella dichiarazione di una variabile o di un oggetto enumerabile (es. array) utilizzo la funzione With per aggiungere dei campi (proprietà) e i rispettivi valori.

    Esempio

    Dichiaro una variabile composta con la funzione With.

    Dim data = New With { .giorno=27, .mese="febbraio", .anno="2020" }

    Il compilatore rileva tre proprietà:

    .giorno
    .mese
    .anno

    Alle proprietà .giorno e .anno ho assegnato un numero intero (27 e 2020). Quindi, il compilatore gli associa automaticamente per inferenza un tipo di dato numerico intero (Int).

    Alla proprietà .mese, invece, ho assegnato un valore alfanumerico ("febbraio"). In questo caso il compilatore gli associa automaticamente il tipo di dato stringa (String).

    Grazie a questa tecnica non ho dovuto predefinire né il nome, né il tipo di dato delle singole proprietà.

    Nelle successive assegnazioni dei valori alla variabile devo però ricordami di rispettare l'odine dei campi e il tipo di dato di ogni campo.

    data = New With {.giorno=30, .mese="marzo", .anno=2020}

    Se usassi un ordine diverso di presentazione o altri tipi di dati, il compilatore produrrebbe un errore.

    In alternativa, posso anche cambiare i valori delle singole proprietà.

    data.mese="marzo"

    In questo caso è importante soltanto rispettare il tipo di dato di ogni singola proprietà. L'ordine delle proprietà non ha importanza.

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Visual Basic .NET

    Il linguaggio di programmazione

    Visual Studio