Wyliczenie to zbiór nazwanych, stałych wartości. Typy takie w języku C# deklarowane są za pomocą słowa kluczowego enum.

Wyliczenia to wartościowy typ danych. Innymi słowy, wyliczenie zawiera swoje własne wartości, których nie może dziedziczyć oraz przekazać przez dziedzicznie.

Deklarowanie typów wyliczeniowych

Składnia
enum nazwa_typu
{
    lista_typow
}
gdzie,
  • nazwa_typu - określa nazwę naszego typu wyliczeniowego;
  • lista_typow - lista oddzielonych od siebie przecinkami identyfikatorów.
Każdy z elementów naszej listy typów ma przypisaną liczbę całkowitą, większą niż element, który go poprzedza. Domyślna wartość pierwszego elementy wynosi 0.

Przykład deklaracji:
enum DniTygodnia
{
    Poniedzialek,
    Wtorek,
    Sroda,
    Czwartek,
    Piatek,
    Sobota,
    Niedziela
}
Przykład użycia typów wyliczeniowych:
using System;
namespace TypyWyliczeniowe
{
    class Program
    {
        static void Main(string[] args)
        {
            int poczatek = (int)DniTygodnia.Poniedzialek; // rzutowanie typu wyliczeniowgo na wartość całkowitą
            int koniec = (int)DniTygodnia.Niedziela;
            Console.WriteLine("Poniedziałek: {0}", poczatek);
            Console.WriteLine("Niedziela: {0}", koniec);
            Console.ReadLine();
            // Wynik działania programu
            //Poniedzialek: 1
            //Niedziela: 7
        }
        // Domyślna wartość typu wyliczeniowego to 0
        // Zmieniamy wartość 'Poniedziałku' na 1 - pierwszy dzień tygodnia
        // Następnie sprawdzimy czy deklaracja jest poprawna
        enum DniTygodnia
        {
            Poniedzialek = 1,
            Wtorek,
            Sroda,
            Czwartek,
            Piatek,
            Sobota,
            Niedziela
        }
    }
}