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.