Cos'è il tipo dinamico in C#

Cos E Il Tipo Dinamico In C



Il tipo dinamico è stato introdotto per la prima volta in C# versione 4.0, il tipo dinamico consente di dichiarare le variabili con dinamico parole chiave. Significa che il tipo di variabile viene determinato durante l'esecuzione del programma, piuttosto che durante la fase di compilazione. Questa flessibilità si rivela vantaggiosa quando si tratta di dati il ​​cui tipo rimane sconosciuto fino al runtime.

Cos'è la digitazione dinamica

La digitazione dinamica consente di assegnare diversi tipi di valori alla stessa variabile durante il runtime. A differenza della tipizzazione statica, in cui il tipo di variabile viene determinato in fase di compilazione e rimane fisso, la tipizzazione dinamica offre flessibilità determinando il tipo in fase di esecuzione in base al valore assegnato. Elimina il controllo del tipo in fase di compilazione rimandandolo al runtime.

Nella tipizzazione dinamica, il controllo del tipo non viene eseguito dal compilatore durante la compilazione. Al contrario, il tipo di variabile viene determinato in fase di esecuzione in base al valore assegnato. Ciò consente l'associazione tardiva, in cui le chiamate al metodo e l'accesso ai membri vengono risolti dinamicamente in base al tipo effettivo dell'oggetto.







Come usare il tipo dinamico in C#

Per usare il tipo dinamico in C#, devi semplicemente dichiarare una variabile usando la parola chiave dynamic. Per esempio:



dinamico myVariable = 'Ciao mondo!' ;

In questo esempio, myVariable è dichiarata come variabile dinamica e gli viene assegnato il valore 'Hello, World!'. In fase di esecuzione, il tipo di myVariable verrà determinato come una stringa.



Esempio di utilizzo del tipo dinamico in C#

Questo codice illustra l'uso della parola chiave dynamic in C#:





usando Sistema ;
Programma di classe pubblica
{
pubblico statico vuoto Principale ( )
{
dinamico myDynamicVariable = 42 ;
Consolle. Linea di scrittura ( 'Valore: {0}, Tipo: {1}' , myDynamicVariable , myDynamicVariable. OttieniTipo ( ) ) ;

myDynamicVariable = 'Ciao mondo!' ;
Consolle. Linea di scrittura ( 'Valore: {0}, Tipo: {1}' , myDynamicVariable , myDynamicVariable. OttieniTipo ( ) ) ;

myDynamicVariable = falso ;
Consolle. Linea di scrittura ( 'Valore: {0}, Tipo: {1}' , myDynamicVariable , myDynamicVariable. OttieniTipo ( ) ) ;

myDynamicVariable = Appuntamento. Ora ;
Consolle. Linea di scrittura ( 'Valore: {0}, Tipo: {1}' , myDynamicVariable , myDynamicVariable. OttieniTipo ( ) ) ;

La mia funzione personalizzata ( myDynamicVariable ) ;
}

pubblico statico vuoto La mia funzione personalizzata ( dati dinamici )
{
Consolle. Linea di scrittura ( 'Uscita funzione personalizzata: {0}' , dati ) ;
}
}

La parola chiave dynamic consente di digitare dinamicamente una variabile, il che significa che il suo tipo può cambiare in fase di esecuzione. Nel codice, una variabile denominata myDynamicVariable viene dichiarato come dinamico e inizialmente gli viene assegnato un valore intero di 42. Viene quindi stampato insieme al relativo tipo utilizzando Console.WriteLine.

Successivamente, a myDynamicVariable viene assegnato un valore stringa ('Hello World!') e nuovamente stampato con il suo tipo. Lo stesso processo viene ripetuto per un valore booleano e infine per la data e l'ora correnti ottenute utilizzando DateTime.Now.



Il codice include anche una MyCustomFunction che prende i dati dei parametri dinamici e li stampa. La funzione myDynamicVariable è chiamata argomento, a dimostrazione del fatto che le variabili dinamiche possono essere passate alle funzioni e il loro tipo può essere determinato in fase di esecuzione.

Conclusione

Il tipo dinamico in C# 4.0 consente di dichiarare le variabili senza specificarne il tipo, il che è utile quando si usano dati di tipi sconosciuti in fase di esecuzione. La tipizzazione dinamica consente al compilatore di saltare il controllo del tipo durante la compilazione. Al contrario, il tipo di variabile viene determinato durante l'esecuzione del programma, in base al valore che contiene. Ulteriori informazioni sul tipo dinamico in questo articolo.