Professional Documents
Culture Documents
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