[PL] Enum

06 May 2013

enum

Enum to typ wyliczeniowy, który zawiera w sobie deklarację listy wartości stałych. Jego domyślnym typem jest integer, a wartość domyślna pierwszego elementu wynosi 0 i przy każdym kolejnym elemencie jest zwiększana o 1.

Deklarację enum’a rozpoczyna się od słowa kluczowego enum oraz nazwy, która go opisuje. Następnie w nawiasach klamrowych wypisuje się elementy, oddzielając je przecinkami:

enum EnumPrzyklad
{
enum01,
enum02,
enum03,
enum04
}

Elementy poszczególnych enum’ów możemy wywołać za pomocą odwołania się do nazwy jaką nadaliśmy i po kropce wybrać interesujący nas element (z pomoca przychodzi IntelliSense, który podpowiada nam, jakie elementy dodaliśmy do naszego zbioru). Możemy również przekonwertować wybrany element na domyślną wartość, pisząc wcześniej w nawiasach (int):

static void Main()
{
Console.WriteLine(EnumPrzyklad.enum01);
Console.WriteLine((int)EnumPrzyklad.enum04);
Console.ReadLine();
}

Output powyższego kodu będzie wyglądać następująco:

enum01
3

O czym warto pamiętać:

  1. Wartości mogą się powtarzać, muszą jedynie należeć do zbioru liczb całkowitych, np.

    {enum01 = 5, enum02 = 10, enum03 = -3, enum04 = 10}
  2. Każdy element musi mieć unikalną nazwę, w przeciwnym wypadku dopisując np. drugi raz enum04otrzymammy poniższy błąd: The type 'EnumCSharpSample.EnumPrzyklad' already contains a definition for 'enum04'
  3. W nazwie danego elementu nie można używać spacji oraz podawać nazw elementów w cudzysłowiu.
  4. Zamiast int możemy skorzystać z następujących typów danych:

    byte,
    sbyte,
    short,
    ushort,
    int,
    long,
    ulong

    definując w następujący sposób:

    enum EnumPrzyklad :long
    {
    enum01,
    enum02,
    enum03,
    enum04
    }