# C sharp/Variabili

C sharp
Copertina Tutti i moduli · Sviluppo
    CopertinaC sharp/Copertina
* IntroduzioneC sharp/Introduzione
* Basi del linguaggio
** SintassiC sharp/Sintassi
** VariabiliC sharp/Variabili
** OperatoriC sharp/Operatori
** Strutture dati
** Strutture di controlloC sharp/Strutture di controllo
** Funzioni
** Delegati ed eventiC sharp/Delegati ed eventi
** Eccezioni
* Classi e oggetti
** ClassiC sharp/Classi
** Oggetti
** Namespace
* Il framework .NET
** Introduzione al frameworkC sharp/Ambiente di sviluppo
** Applicazioni per la console
** Applicazioni grafiche per Windows
* Visual C sharp
Modifica il sommario
chiudi indice
Le variabili sono usate per memorizzare valori limitatamente all'esecuzione del programma. Più tecninamente, una variabile collega un oggetto (nel senso generale del termine, ad esempio un valore, un numero, una stringa) ad un identificatore (il nome della variabile) così che l'oggetto possa essere accessibile anche successivamente. Quando parleremo del valore "contenuto" nella variabile, facciamo in realtà riferimento all'oggetto o al valore a cui la variabile è associata.

## Semplici variabili

Vediamo un esempio di creazione (dichiarazione) di una variabile:
Questa istruzione crea una variabile chiamata "num" che non collega per ora nessun valore/oggetto. La parola chiave "int" indica che la variabile dovrà contenere solo numeri interi.
Per collegare la variabile ad un valore (assegnare il valore alla variabile) si usa la sintassi:
Per esempio:
È possibile anche combinare la dichiarazione con una prima assegnazione:
Per fare riferimento al valore contenuto in una variabile per utilizzarlo in seguito usiamo semplicemente il nome della variabile:
In questo modo copiamo il valore di num in num2. Possiamo anche scrivere:

## Tipi di dati

Il tipi di dato di una variabile definisce i tipi di valori che essa può contenere. Questo è importante anche perché differenti tipi di dati richiedono un diverso utilizzo di memoria. Se ad esempio si è sicuri che un particolare valore (ad esempio il risultato di un calcolo) sarà un intero compreso tra 0 e 255 (la sua scrittura in sistema binario occupa quindi un byte) sarà inutile predisporre uno spazio di memoria maggiore.

### Tipi di dati semplici

Per mantenere la somiglianza con altri linguaggio come Java o C++, tutti i tipi di dati semplici sono in realtà degli alias dei corrispondenti tipi di dato nel framework .NET. Prendiamo ad esempio il tipo di dato int visto in precedenza; in realtà scrivere:
è come scrivere:
Questo perché la parola chiave int è in realtà un alias per il tipo di dato Int32 nel framework. Questo può sembrare superfluo, ma ritorna fuori quando si lavora con altri linguaggi (come il VB.net):
Di seguito sono indicati tutti i tipi di dato in C# insieme al loro alias nel framework:

#### Interi

| Alias C# | Tipo .NET | Dimensione (bit) | Valori ammessi |
| sbyte | System.SByte | 8 | da -128 a 127 |
| byte | System.Byte | 8 | da 0 o 255 |
| short | System.Int16 | 16 | da -32,768 a 32,767 |
| ushort | System.UInt16 | 16 | da 0 a 65,535 |
| char | System.Char | 16 | Un carattere Unicode da 0 a 65,535 |
| int | System.Int32 | 32 | da -2,147,483,648 a 2,147,483,647 |
| uint | System.UInt32 | 32 | da 0 a 4,294,967,295 |
| long | System.Int64 | 64 | -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 |
| ulong | System.UInt64 | 64 | 0 a 18,446,744,073,709,551,615 |

#### Numeri decimali

| Alias C# | Tipo .NET | Dimensione (bit) | Precisione | Valori ammessi |
| float | System.Single | 32 | 7 cifre | da 1.5 x 10$^{-45}$ a 3.4 x 10$^{38}$ |
| double | System.Double | 64 | 15-16 cifre | da 5.0 x 10$^{-324}$ a 1.7 x 10$^{308}$ |
| decimal | System.Decimal | 128 | 28-29 cifre decimali | da 1.0 x 10$^{-28}$ a 7.9 x 10$^{28}$ |

#### Altri tipi predefiniti

| Alias C# | Tipo .NET | Dimensione (bit) | Valori ammessi |
| bool | System.Boolean | 32 | true o false (vero o falso) |
| string | System.String | 16 * lunghezza | |