Una variabile identifica una parte di memoria che serve a contenere dei dati modificabili nel corso dell’esecuzione di un programma. Una variabile è caratterizzata da un nome (sequenza di caratteri e cifre) e da un valore.
Un’espressione è la possibile combinazione di valori, variabili, operatori e funzioni che sono interpretate (valutate) secondo particolari regole, di precedenza e di associazione, e producono un nuovo valore.
Per usare una variabile in C#, basta anteporre il tipo seguito dal nome e da un’eventuale assegnazione. Ad esempio:
int miaVar = 8;
Dove:
- int è il tipo di dato;
- miaVar è il nome della variabile;
- 8 è il suo valore.
Ovviamente, nel definire una variabile, possiamo usare il tipo di dato che più si presta a gestire i valori che ad essa verranno assegnati. Una volta dichiarata la nostra variabile, potremo compiere qualunque operazione su di essa.
Ad esempio possiamo mostrare a video il valore della variabile dichiarata all’esempio precedente in questo modo:
Console.Write(miaVar);
In C# è sempre necessario dichiarare una variabile per non ricevere errori.
I tipi di dato in C#
C#, come tutti i linguaggi di programmazione, supporta diversi tipi di dato. Vediamoli di seguito:
Tipi interi
Per spiegare come gestire gli interi con C# partiamo da un esempio:
using System;
class Program
{
public static void Main()
{
// 8 bit -128 to 127
sbyte SbyteVar = 127;
// 8 bit 0 to 255
byte byteVar = 255;
// 16 bit -32768 to 32767
short ShortVar = 32767;
// 16 bit 0 to 65535
ushort ushortVar = 65535;
// 32 bit -2147483648 to 2147483647
int intVar = 2147483647;
// 32 bit 0 to 4294967295
uint uintVar = 4294967295;
// 64 bit -9223372036854775808 to 9223372036854775807
long longVar = 9223372036854775807;
// 64 bit 0 to 18446744073709551615
ulong ulongVar = 18446744073709551615;
// 16 bit 0 to 65535
char charVar = (char)65535;
}
}
Questi sono tutti i tipi che C# mette a disposizione per gestire gli interi. Osserviamo che nei commenti è indicato il numero di bit occupati in memoria e la dimensione minima e massima usabile per quel tipo di dato.
Notate che il tipo int può diventare anche un tipo uint(unsigned), poiché vengono semplicemente esclusi i negativi, aumentando però la capacità dei numeri positivi (che raddoppia).
Tipi decimali e float
Per rappresentare numeri reali possiamo usare i tipi floating e decimali. Se vogliamo usare un numero in virgola con precisione a 7 cifre decimali usiamo il tipo float. Se invece vogliamo gestire numeri con virgola a 15 – 16 cifre usiamo il tipo double; per numeri con cifre dopo la virgola di 28 – 29 cifre usiamo il tipo decimal, che è quello che occupa più memoria (128 bit).
Vediamo un esempio:
float MyFloat = (float)1.123456789;
Console.Write(MyFloat);
Console.ReadLine();
Eseguendo il codice sopra, a video verrà mostrato un numero a 7 cifre dopo la virgola, in quanto le librerie del Framework automaticamente troncano la parte che non è possibile gestire con un determinato tipo di variabile. Osservate nella prima istruzione che viene usato un casting (float), cioè viene specificato a quale tipo di dato dovrà corrispondere il valore che viene dopo.
Tipi stringa
Per gestire le stringhe in C# si usa il tipo string. Questo contiene caratteri di testo consecutivi semplicemente racchiusi tra doppi apici. Vediamo un esempio:
string MiaStringa = "Questa è una stringa";
Se vogliamo, possiamo usare caratteri speciali all’interno della nostra stringa, basta usare il backslash (\), seguito dal carattere. Ad esempio possiamo decidere di andare a capo con "\n":
string MiaStringa = "Questa è una stringa\nSono andato a capo.";
Possiamo usare anche il carattere speciale @, per dire al compilatore che si tratta di una stringa e di non interpretare i backslash come caratteri speciali.
string mioPath = @"C:\Users\Vincenzo";
E’ identico a:
string mioPath = "C:\\Users\\Vincenzo";
Lavorare con le variabili
Possiamo, ovviamente, manipolare insieme più variabili. Vediamo di seguito come concatenare il valore di più variabili mediante l’operatore di concatenazione (+):
using System;
class Unary
{
public static void Main()
{
string var1 = "Ciao ho ";
int anni = 18;
string var2 = " anni.";
Console.Write(var1 + anni + var2);
Console.ReadLine();
}
}
In genere per gestire le variabili è possibile utilizzare gli stessi operatori di altri linguaggi di programmazione come C o C++. Nella prossima lezione vedremo, appunto, gli operatori di C#.