1. Wprowadzenie do C#
  2. Szybki start
  3. Pierwszy program
  4. Komentarze
  5. Typy danych
  6. Zmienne
  7. Pola
  8. Właściwości
  9. Stałe
  10. Metody
  11. Instrukcje warunkowe
  12. Pętle
  13. Tablice
  14. Kolekcje
  15. Klasy
  16. Dziedziczenie
  17. Polimorfizm
  18. Konwersja typów
  19. Właściwości klasy String
  20. Typy wyliczeniowe
  21. Interfejsy
  22. Klasy statyczne
  23. Klasy Abstrakcyjne
  24. Przestrzenie nazw
  25. Wyjątki
  26. Typy generyczne
  27. JSON
  28. XML
  29. Podsumowanie

Typy wyliczeniowe

Typy wyliczeniowe (zwane również "enumami") w języku C# są sposobem na zdefiniowanie zestawu nazwanych wartości. Są one przydatne w sytuacjach, gdy zmienna może mieć tylko jedną z predefiniowanego zestawu wartości. Typy wyliczeniowe są definiowane przy użyciu słowa kluczowego enum, a wartości wewnątrz typu wyliczeniowego są określane jako lista nazw oddzielonych przecinkami.

Typy takie w języku C# deklarowane są za pomocą słowa kluczowego enum

								
enum Dni { Poniedziałek, Wtorek, Środa, Czwartek, Piątek, Sobota, Niedziela };
								
						

Domyślnie typ podstawowy typu wyliczeniowego jest int, ale może być zmieniony na dowolny typ całkowity, taki jak byte, sbyte, short, ushort, int, uint, long lub ulong.

								
enum Dni : byte { Poniedziałek, Wtorek, Środa, Czwartek, Piątek, Sobota, Niedziela };
								
						

Oto przykład użycia typów wyliczeniowych do reprezentowania kolorów:

								
enum Kolory { Czerwony, Zielony, Niebieski };

Kolory mójKolor = Kolory.Zielony;



if (mójKolor == Kolory.Czerwony)
{
		Console.WriteLine("Kolor jest czerwony.");
}


else if (mójKolor == Kolory.Zielony)
{
		Console.WriteLine("Kolor jest zielony.");
}


else if (mójKolor == Kolory.Niebieski)
{
		Console.WriteLine("Kolor jest niebieski.");
}
								
						

Można również przypisać wartości liczbowe do nazw wartości typu wyliczeniowego:

								
enum PoryRoku { Zima = 1, Wiosna = 2, Lato = 3, Jesień = 4 };

PoryRoku obecnaPoraRoku = PoryRoku.Wiosna;

Console.WriteLine("Obecna pora roku to: " + obecnaPoraRoku);
								
						

Możemy również używać typów wyliczeniowych jako argumentów funkcji:

								
void MalujPokój(Kolory kolor)
{
    switch (kolor)
    {
        case Kolory.Czerwony: // Sprawdzenie, czy wartość zmiennej kolor jest Kolory.Czerwony
            Console.WriteLine("Malowanie pokoju na czerwono..."); // Wyświetlenie komunikatu "Malowanie pokoju na czerwono..."
            break; // Zakończenie przypadku

        case Kolory.Zielony: // Sprawdzenie, czy wartość zmiennej kolor jest Kolory.Zielony
            Console.WriteLine("Malowanie pokoju na zielono..."); // Wyświetlenie komunikatu "Malowanie pokoju na zielono..."
            break; // Zakończenie przypadku

        case Kolory.Niebieski: // Sprawdzenie, czy wartość zmiennej kolor jest Kolory.Niebieski
            Console.WriteLine("Malowanie pokoju na niebiesko..."); // Wyświetlenie komunikatu "Malowanie pokoju na niebiesko..."
            break; // Zakończenie przypadku
    }
}

MalujPokój(Kolory.Niebieski); // Wywołanie funkcji MalujPokój z argumentem Kolory.Niebieski

// Funkcja MalujPokój przyjmuje parametr kolor typu Kolory.
// Wewnątrz funkcji używamy instrukcji switch, aby sprawdzić wartość przekazaną do parametru kolor.
// W zależności od wartości, wykonujemy odpowiednie działania.
// W wyniku powyższego kodu, zostanie wyświetlony komunikat "Malowanie pokoju na niebiesko...".
								
						
Notatka

typy wyliczeniowe są przydatne do reprezentowania zestawów wartości, które mogą być przypisane do zmiennych, oraz ułatwiają kodowanie instrukcji warunkowych i funkcji.