Variabili, Costanti e Tipi di Dato in C#
La base fondamentale di ogni programma: scopri come memorizzare e gestire i dati
📝 Introduzione alle Variabili
In C#, come in ogni linguaggio di programmazione, le variabili sono i contenitori
fondamentali che permettono di memorizzare dati durante l’esecuzione del programma. C# è un linguaggio
fortemente tipizzato, il che significa che ogni variabile deve avere un tipo di dato
specificato che determina quale genere di informazione può contenere.
💡 Cosa Sono le Variabili?
Immagina le variabili come scatole etichettate nella memoria del computer.
Ogni scatola ha un nome (il nome della variabile) e può contenere un tipo specifico di oggetto
(il tipo di dato). Una volta creata, puoi leggere o modificare il contenuto della scatola.
🔧 Dichiarazione e Assegnazione
Per utilizzare una variabile in C# è necessario dichiararla (crearla) e
successivamente assegnarle un valore. La sintassi generale è:
// Dichiarazione tipoDato nomeVariabile; // Assegnazione nomeVariabile = valore; // Dichiarazione e assegnazione insieme (consigliato) tipoDato nomeVariabile = valore;
- Contenere spazi
- Iniziare con un numero
- Essere parole chiave (es.
int,class)
- Usare camelCase:
nomeStudente - Scegliere nomi descrittivi
- Evitare abbreviazioni oscure
// ✅ CORRETTO int numeroStudenti = 25; string nomeCompleto = "Mario Rossi"; double mediaPrezzi = 19.99; // ❌ ERRATO int 123numero; // Non può iniziare con numero string nome studente; // Non può contenere spazi int class; // 'class' è parola chiave riservata
🔢 Tipi di Dato Fondamentali
Tipi Numerici Interi
I tipi interi memorizzano numeri senza decimali. La scelta del tipo dipende dall’intervallo
di valori che devi rappresentare.
| Tipo | Descrizione | Intervallo | Esempio |
|---|---|---|---|
int |
Tipo più comune per numeri interi | -2,147,483,648 a 2,147,483,647 | int età = 25; |
long |
Per numeri interi molto grandi | ±9 quintilioni circa | long popolazione = 7800000000; |
short |
Per numeri interi piccoli | -32,768 a 32,767 | short livello = 4; |
byte |
Per valori da 0 a 255 | 0 a 255 | byte canale = 12; |
Tipi Numerici con Decimali
Per i numeri con la virgola, C# offre tre tipi principali con diverse caratteristiche di precisione.
| Tipo | Descrizione | Precisione | Esempio |
|---|---|---|---|
float |
Precisione singola (7 cifre) | ~6-9 cifre significative | float altezza = 1.75f; |
double |
Precisione doppia (15-16 cifre) | ~15-17 cifre significative | double pi = 3.14159265359; |
decimal |
Alta precisione per calcoli finanziari | 28-29 cifre significative | decimal prezzo = 19.99m; |
Usa decimal quando lavori con denaro o calcoli finanziari dove la precisione
è fondamentale. Per la grafica 3D o calcoli scientifici, double è più veloce
e sufficiente. float è raramente necessario nel codice moderno.
Altri Tipi Fondamentali
| Tipo | Descrizione | Esempio |
|---|---|---|
bool |
Valore booleano (vero o falso) | bool isAttivo = true; |
char |
Singolo carattere Unicode | char lettera = 'A'; |
string |
Sequenza di caratteri (testo) | string nome = "Mario"; |
// bool - per condizioni vero/falso bool isLoggato = true; bool haComprato = false; // char - per un singolo carattere (usa apici singoli!) char iniziale = 'M'; char simbolo = '@'; // string - per testo (usa apici doppi!) string messaggio = "Benvenuto!"; string email = "mario@example.com";
🎯 L’inferenza di Tipo con var
C# offre anche la possibilità di utilizzare la parola chiave var, che permette
al compilatore di inferire automaticamente il tipo di dato in base al valore assegnato.
var messaggio = "Ciao mondo"; // Il compilatore capisce: string var numero = 42; // Il compilatore capisce: int var pi = 3.14; // Il compilatore capisce: double var isAttivo = true; // Il compilatore capisce: bool
varNON rende C# un linguaggio a tipizzazione dinamica- Il tipo viene determinato in fase di compilazione
- Una volta assegnato, il tipo non può cambiare
varrichiede sempre inizializzazione immediata
// ✅ CORRETTO var nome = "Mario"; nome = "Luigi"; // OK, sempre string // ❌ ERRATO var eta; // ERRORE: var richiede valore immediato var x = 10; x = "ciao"; // ERRORE: x è int, non può diventare string
Usa var quando il tipo è ovvio dal valore assegnato (es. var nome = "Mario";).
Preferisci il tipo esplicito quando migliora la leggibilità del codice (es. int contatore = 0;).
🔒 Costanti con const
Quando si ha bisogno di un valore che non deve mai cambiare durante l’esecuzione
del programma, si utilizzano le costanti con la parola chiave const.
const double TASSO_IVA = 0.22; const string MESSAGGIO_BENVENUTO = "Benvenuti al corso di C#!"; const int MAX_TENTATIVI = 3; const double PI_GRECO = 3.14159265359;
- Valore immutabile
- Maggiore sicurezza
- Codice più leggibile
- Usa UPPER_SNAKE_CASE
- Nomi descrittivi
- Valore al momento della dichiarazione
const double PREZZO_BASE = 100.0;
const double SCONTO_STUDENTI = 0.15; // 15%
double prezzoFinale = PREZZO_BASE * (1 - SCONTO_STUDENTI);
Console.WriteLine($"Prezzo finale: {prezzoFinale}€");
// Output: Prezzo finale: 85€
🚀 Esempio Pratico Completo
Vediamo ora un programma completo che utilizza variabili di diversi tipi per gestire
le informazioni di uno studente universitario.
using System;
class Program
{
static void Main()
{
// Dichiarazione e inizializzazione variabili
string nomeStudente = "Mario Rossi";
int eta = 22;
double mediaVoti = 28.5;
bool isLaureato = false;
char votoLaurea = 'A'; // Voto previsto
// Output informazioni iniziali
Console.WriteLine("=== SCHEDA STUDENTE ===");
Console.WriteLine($"Nome: {nomeStudente}");
Console.WriteLine($"Età: {eta}");
Console.WriteLine($"Media voti: {mediaVoti:F1}");
Console.WriteLine($"Laureato: {isLaureato}");
Console.WriteLine($"Voto previsto: {votoLaurea}");
// Modifica dei valori (simulazione aggiornamento)
eta = 23;
isLaureato = true;
mediaVoti = 29.8;
// Output aggiornato
Console.WriteLine("\n=== DOPO LAUREA ===");
Console.WriteLine($"Età: {eta}");
Console.WriteLine($"Laureato: {isLaureato}");
Console.WriteLine($"Media finale: {mediaVoti:F1}");
// Calcolo con costante
const double BONUS_LODE = 1.2;
if (mediaVoti >= 29.0)
{
Console.WriteLine($"Bonus lode: {BONUS_LODE}");
}
}
}
{nomeStudente}– Interpolazione di stringhe con il simbolo ${mediaVoti:F1}– Formattazione a 1 decimale\n– Carattere di nuova lineaconst– Il bonus non cambia mai
💪 Esercizi Pratici
📝 Esercizio 1: Negozio Online
Crea un programma che simula un sistema di e-commerce. Dichiara variabili per:
- Nome prodotto (string)
- Prezzo base (decimal)
- Quantità disponibile (int)
- È in sconto? (bool)
- Percentuale sconto (double)
Calcola e visualizza il prezzo finale considerando lo sconto se presente.
📝 Esercizio 2: Calcolatrice IMC
Crea un programma che calcola l’Indice di Massa Corporea (IMC). Usa:
- Nome persona (string)
- Peso in kg (double)
- Altezza in metri (double)
Formula IMC: peso / (altezza * altezza)
- Dichiarazione variabili
- Tipi di dato fondamentali
- Inferenza con var
- Costanti con const
- Operatori matematici
- Casting tra tipi
- Manipolazione stringhe
- Input utente
Lezione 8 del Corso C# Completo