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.