You are on page 1of 11

Struktury

22.01.2022 1
Struktury

W języku C# struktura to wartościowy typ danych.

Konstrukcja taka pozwala przy pomocy jednej zmiennej
przechowywać wiele różnych wartości.

Słowo kluczowe struct pozwala na utworzenie struktury.

Struktury są używane do reprezentacji rekordów.

22.01.2022 2
22.01.2022 3
22.01.2022 4
Cechy struktur

struktury mogą posiadać, metody, pola, indeksery, właściowości
oraz zdarzenia;

struktura może mieć zdefiniowany konstruktor ale nie destruktor.
Warto pamiętać, że nie można zdefiniować domyślnego
konstruktora dla struktury. Konstruktor ten jest automatycznie
zdefiniowany i nie może być zmieniony. Co to oznacza w
praktyce? Oznacza to, iż można utworzyć konstruktor, który
przyjmuje na starcie różne parametry;

struktury nie wspierają dziedziczenia z innych struktur czy klas;

struktury nie mogą zostać użyte jako baza dla innych struktur lub
klas;
22.01.2022 5
Cechy struktur

struktura może implementować jeden lub więcej interfejsów;

składowe struktury nie mogą być zdefinowane jako abstrakcyjne,
wirtualne lub chronione;

kiedy tworzysz strukturę używając słowa kluczowego new
tworzony jest oraz wywoływany domyślny konstruktor. W
przeciwieństwie do klas, struktury mogą zostać zainicjowane bez
słowa kluczowego new;

jeżeli nie zostanie użyte słowo kluczowe new pola struktury
zostaną nieprzypisane a obiekt nie będzie mógł być używany
dopóki pola nie zostaną zainicjowane.
22.01.2022 6
Klasa vs struktura

klasy są typem referencyjnym a struktury typem wartościowym;

struktury nie wspierają dziedziczenia;

struktury nie mogą mieć domyślnego konstruktora.

22.01.2022 7
Typ referencyjny i wartościowy

Typ wartościowy jest podstawowym typem danych występującym
w C#. Podczas deklaracji typu wartościowego kompilator alokuje
odpowiednią ilość miejsca w pamięci, w której będzie
przechowywana wartość zmiennej.

Główną różnicą między typami wartościowymi a referencyjnymi
jest niezmienność wielkości typów wartościowych w
przeciwieństwie do typów referencyjnych. Nigdy nie wiemy ile
miejsca w pamięci będzie zajmować klasa, w przeciwieństwie do
prostych zmiennych np. typu int, które zajmują 4b.

22.01.2022 8
22.01.2022 9
22.01.2022 10

Dziękuję za uwagę

22.01.2022 11

You might also like