Junior — Middle
O structură într-un limbaj de programare este un tip de valoare sau un tip de referință?
sobes.tech AI
Răspuns de la AI
În limbajul C#, structura (struct) este un tip de valoare (value type), nu un tip de referință.
Aceasta înseamnă că atunci când se atribuie sau se transmite o structură către o metodă, se face o copie a tuturor datelor sale, și nu se transmite o referință la obiectul din memorie, așa cum se întâmplă cu clasele (tipuri de referință).
Exemplu:
struct Point
{
public int X;
public int Y;
}
Point p1 = new Point { X = 1, Y = 2 };
Point p2 = p1; // se creează o copie a lui p1
p2.X = 10;
// p1.X va rămâne 1, deoarece p2 este o copie
Acest comportament este important de avut în vedere la proiectarea și optimizarea aplicațiilor în C#.