0Pricing
C# Academy · Lezione

Valore e riferimento; letterali; inferenza con var; const/readonly

Apprenda la differenza tra tipi valore e tipi riferimento, il funzionamento dei letterali e dei suffissi numerici, quando usare var e il ruolo di const e readonly.

Valore e riferimento; letterali; inferenza con var; const/readonly è una lezione C# Academy gratuita su CoddyKit. Questa è la lezione 1 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C# Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C# Academy include 3 lezioni in totale.

Perché i tipi sono importanti

Obiettivo: comprendere la differenza tra tipi valore e tipi riferimento e il comportamento di variabili, valori letterali e costanti nel codice di tutti i giorni.

Valore e riferimento

Tipo valore: copia i dati durante l'assegnazione, ad esempio int, bool e struct. Tipo riferimento: copia un riferimento, come per class, array e string.

  • Valore: modifiche locali più sicure
  • Riferimento: identità dell'oggetto condivisa

Valori letterali e suffissi

I valori letterali hanno un tipo. Utilizzi i suffissi per maggiore chiarezza: f (float), m (decimal), L (long).

  • 3.14f → float
  • 10m → decimal (denaro)
  • 123L → long

Inferenza con var

var consente al compilatore di dedurre il tipo dall'espressione a destra. Lo utilizzi quando il tipo è ovvio; in caso contrario, lo specifichi esplicitamente.

const e readonly

const: costante determinata in fase di compilazione; readonly: impostato nel costruttore o nella dichiarazione.

  • Utilizzi const per valori fissi, ad esempio Pi
  • Utilizzi readonly per valori noti durante l'esecuzione

I tipi nella pratica

Osservi in un unico piccolo programma il comportamento di valori e riferimenti, i suffissi numerici, la semplice inferenza con var e l'uso di const/readonly.

using System;

// Value type (struct) copies by value
public struct PointS
{
  public int X;
  public int Y;
}

// Reference type (class) copies the reference
public class PointC
{
  public int X;
  public int Y;
}

// Readonly demo class
public class Config
{
  public readonly string Name;
  public Config(string name)
  {
    Name = name; // can set here
  }
}

public class Program
{
  // Compile-time constant
  private const double Pi = 3.14159;

  public static void Main(string[] args)
  {
    // 1) Value vs reference
    PointS a = new PointS { X = 1, Y = 2 };
    PointS b = a;         // copy value
    b.X = 99;
    Console.WriteLine("Value struct a.X = " + a.X); // 1 (unchanged)
    Console.WriteLine("Value struct b.X = " + b.X); // 99

    PointC ac = new PointC { X = 1, Y = 2 };
    PointC bc = ac;       // copy reference
    bc.X = 77;
    Console.WriteLine("Ref class ac.X = " + ac.X);  // 77 (same object)
    Console.WriteLine("Ref class bc.X = " + bc.X);  // 77

    // 2) Literals & suffixes
    float f = 3.14f;
    decimal price = 10m;
    long big = 123L;
    Console.WriteLine("f=" + f + " price=" + price + " big=" + big);

    // 3) var inference (type is obvious)
    var sum = a.X + a.Y; // int
    Console.WriteLine("sum=" + sum);

    // 4) const vs readonly
    Config cfg = new Config("Demo");
    Console.WriteLine("Pi=" + Pi + " Name=" + cfg.Name);
  }
}

Definizione di tipo valore

Verifica rapida: quale affermazione descrive meglio un tipo valore?

Riepilogo

Riepilogo: i tipi valore copiano i dati; i tipi riferimento condividono gli oggetti. Utilizzi i suffissi per i valori letterali numerici, var quando il tipo è chiaro e scelga opportunamente tra const e readonly.

Domande Frequenti

La lezione «Valore e riferimento; letterali; inferenza con var; const/readonly» è gratuita?

Sì — il testo completo di «Valore e riferimento; letterali; inferenza con var; const/readonly» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C# Academy, passa a CoddyKit PRO. Il corso C# Academy include 3 lezioni in totale.

Cosa imparerò in «Valore e riferimento; letterali; inferenza con var; const/readonly»?

Apprenda la differenza tra tipi valore e tipi riferimento, il funzionamento dei letterali e dei suffissi numerici, quando usare var e il ruolo di const e readonly. Eserciti C# Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare C# Academy?

Non è richiesta alcuna esperienza precedente. C# Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 3.

Quanto tempo richiede la lezione «Valore e riferimento; letterali; inferenza con var; const/readonly»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione C# Academy?

Sì. Ogni lezione C# Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Valore e riferimento; letterali; inferenza con var; const/readonly
  2. Operatori ed espressioni: aritmetici, di confronto e logici
  3. Suffissi nella pratica; casting e conversione; creazione di oggetti in C# 6
← Torna a C# Academy