Tryb wyliczeniowy - enum
:
- Daje możliwość przypisania zestawu wartości, które mogą być przypisane do zmiennej.
- Przykład – dni tygodnia.
- Gdybyśmy przechowywali to w typie string istnieje ryzyko wprowadzenie innej wartości.
- Nie ma co tworzyć „na siłę”, np. by przechowywać numer dni w tygodniu/miesiącu.
Deklaracja:
enum DniTygodnia { Poniedziałek, Wtorek, Środa, Czwartek, Piątek, Sobota, Niedziela };
Domyślnie elementy typu wyliczeniowego są typu int
, ale w razie potrzeby możemy zawsze zmienić ten typ na inny całkowitoliczbowy (byte, sbyte, short, ushort, int, uint, long, ulong).
enum Miesiące : byte { Sty, Lut, Mar, Kwi, Maj, Cze, Lip, Sie, Wrz, Paź, Lis, Gru };
Jeśli chcemy otrzymać nazwę, to musimy poprzedzić ją nazwą typu wyliczeniowego np. DniTygodnia.Poniedziałek;
.
Np. deklaracja zmiennej urodziny
typu DniTygodnia
wygląda następująco: DniTygodnia urodziny = DniTygodnia.Poniedziałek;
Jeśli chcemy otrzymać numer elementu, musimy go zrzutować na typ całkowitoliczbowy (domyślnie int
), numeracja domyślnie zaczyna się od zera. int numerDnia = (int)DniTygodnia.Czwartek;
Możemy ręcznie nadać wartość poszczególnym składnikom. Np.
enum DniTygodnia { Poniedziałek=1, Wtorek, Środa, Czwartek, Piątek, Sobota, Niedziela };
int numerDnia = (int)DniTygodnia.Czwartek; //zmienna numerDnia będzie miała wartość 4
Enum pozwala na przypisanie tej samej wartości do tej samej dosłownej wartości. Np.
enum DniTygodnia { Poniedziałek, Wtorek=0, Środa, Czwartek, Piątek, Sobota, Niedziela };
DniTygodnia urodziny = DniTygodnia.Wtorek;