Skip to content

Instantly share code, notes, and snippets.

@pjastr
Last active December 7, 2017 15:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pjastr/f111297c071d02c04dcfb513c31e351a to your computer and use it in GitHub Desktop.
Save pjastr/f111297c071d02c04dcfb513c31e351a to your computer and use it in GitHub Desktop.

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;

ii

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment