Sobes.tech
Junior — Middle

Puoi spiegare in cosa differiscono i tipi di riferimento dai tipi di valore nel linguaggio C#?

sobes.tech AI

Risposta dell'AI

In C# i tipi di dato sono divisi in tipi di valore (value types) e tipi di riferimento (reference types).

  • Tipi di valore memorizzano i dati direttamente. Quando si assegna o si passa a un metodo, il valore viene copiato. Esempi: int, double, struct.
  • Tipi di riferimento memorizzano un riferimento all'area di memoria dove si trovano i dati. Quando si assegna, viene copiata solo la referenza, non i dati stessi. Esempi: class, string, array.

Esempio:

int a = 5;
int b = a; // b riceve una copia del valore 5
b = 10; // a rimane 5

class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // p2 e p1 si riferiscono allo stesso oggetto
p2.Name = "Bob"; // ora p1.Name è anche "Bob"

In questo modo, le modifiche ai tipi di riferimento tramite una variabile si riflettono su tutte le referenze, mentre nei tipi di valore no.