Junior — Middle
Czy struktura w języku programowania jest typem wartości czy typem referencyjnym?
sobes.tech AI
Odpowiedź od AI
W języku C# struktura (struct) jest typem wartości (value type), a nie typem referencyjnym.
Oznacza to, że podczas przypisywania lub przekazywania struktury do metody, tworzona jest kopia wszystkich jej danych, a nie przekazywana jest referencja do obiektu w pamięci, jak ma to miejsce w przypadku klas (typów referencyjnych).
Przykład:
struct Point
{
public int X;
public int Y;
}
Point p1 = new Point { X = 1, Y = 2 };
Point p2 = p1; // tworzy się kopia p1
p2.X = 10;
// p1.X pozostanie równe 1, ponieważ p2 jest kopią
Takie zachowanie jest ważne do uwzględnienia przy projektowaniu i optymalizacji aplikacji w C#.