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 è:

Sintassi Base
// Dichiarazione
tipoDato nomeVariabile;

// Assegnazione
nomeVariabile = valore;

// Dichiarazione e assegnazione insieme (consigliato)
tipoDato nomeVariabile = valore;

📌 Convenzioni di Naming (Regole per i Nomi)

❌ NON possono

  • Contenere spazi
  • Iniziare con un numero
  • Essere parole chiave (es. int, class)
✅ SI deve

  • Usare camelCase: nomeStudente
  • Scegliere nomi descrittivi
  • Evitare abbreviazioni oscure

Esempi Pratici
// ✅ 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;
💰 Quando Usare decimal?

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";
Esempi con bool, char e string
// 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.

Utilizzo di var
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

⚠️ IMPORTANTE su var

  • var NON rende C# un linguaggio a tipizzazione dinamica
  • Il tipo viene determinato in fase di compilazione
  • Una volta assegnato, il tipo non può cambiare
  • var richiede sempre inizializzazione immediata
var – Cosa Funziona e Cosa No
// ✅ 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

📚 Quando Usare var?

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.

Dichiarazione Costanti
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;

📌 Caratteristiche delle Costanti

✅ Vantaggi

  • Valore immutabile
  • Maggiore sicurezza
  • Codice più leggibile
📝 Convenzioni

  • Usa UPPER_SNAKE_CASE
  • Nomi descrittivi
  • Valore al momento della dichiarazione

Esempio Pratico con Costanti
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.

Program.cs – Gestione Studente
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}");
        }
    }
}

💡 Analisi del Codice
  • {nomeStudente} – Interpolazione di stringhe con il simbolo $
  • {mediaVoti:F1} – Formattazione a 1 decimale
  • \n – Carattere di nuova linea
  • const – 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)

🎯 Riepilogo Lezione

Hai imparato:

  • Dichiarazione variabili
  • Tipi di dato fondamentali
  • Inferenza con var
  • Costanti con const
Prossimi passi:

  • Operatori matematici
  • Casting tra tipi
  • Manipolazione stringhe
  • Input utente

Lezione 8 del Corso C# Completo

Torna in alto