Sobes.tech
Junior — Middle

Qual è la differenza tra tipi di dati di riferimento e tipi di dati di valore nella programmazione?

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).

I tipi di valore memorizzano i dati direttamente. Quando vengono assegnati o passati a un metodo, il valore stesso viene copiato. Esempi: int, double, struct, bool.

I tipi di riferimento memorizzano un riferimento a un'area di memoria dove si trovano i dati. Quando vengono assegnati, viene coperto il riferimento, non i dati stessi, quindi più variabili possono puntare allo stesso oggetto. Esempi: class, string, array.

Esempio:

int a = 5;
int b = a; // copia il valore 5
b = 10;
// a è ancora 5

class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // copia il riferimento
p2.Name = "Bob";
// p1.Name ora è "Bob"

Pertanto, la principale differenza è il modo in cui i dati vengono memorizzati e copiati: i tipi di valore copiano i valori, i tipi di riferimento copiano riferimenti agli oggetti.