C# ENUMERACJE


W tej lekcji poznasz co to są enumeracje oraz jak je wykorzystywać. Najpierw jednak postaramy sobie odpowiedzieć na pytanie czym jest ta enumeracja, a więc w skrócie ujmując enumeracja to zbiór pewnych nazw przechowujących wartość, takiego samego typu jak enumeracja. Zaczniemy może od ogólnej deklaracji:
enum nazwa_enumeracji : typ { element1, element2,…} ;
Co może być przykładem takiej enumeracji w naszym życiu? Na przykład waluta, bądź kolory. Spróbujemy zatem stworzyć kilka takich przykładów. Zacznijmy może od stworzenia enumeracji przechowujące numery kolorów, przypuśćmy że mamy taki program który aby coś wyświetlił w kolorze potrzebuje numeru tego koloru, było by okropne jeżeli mieli byś my 100 kolorów i musieli byś my pamiętać dla każdego z osobna ich wartość liczbową, dlatego łatwiej było by posłużyć się enumeracją. I tak też zrobiliśmy a oto przykład:
Początek kodu:
using System;

class Pokaz
{
enum kolory : byte { Zielony = 1, Brazowy, Niebieski, Zolty, Bialy = 0 } ;
public static void Main()
{
int z = (byte)kolory.Zielony;
int n = (byte)kolory.Niebieski;
int b = (byte)kolory.Bialy;
Console.WriteLine(„Kolor zielony ma wartość: ” + z);
Console.WriteLine(„Kolor niebieski ma wartość: ” + n);
Console.WriteLine(„Kolor biały ma wartość: ” + b);
}

}

Koniec kodu:

Pora teraz na małe sprostowania, nie potrzeba pisać specjalnie typu enumeracji, można napisać tylko enum nazwa {…}. W tej linijce Zielony = 1 przypisujemy kolorowi zielonemu  konkretną wartość, jeżeli byś my tego nie zrobili posiadał by on wartość 0, kolejne elementy nie mające przypisanej konkretnej wartości, posiadają ją zwiększoną o jeden elementu poprzedniego czyli kolor niebieski ma wartość 3. W przypadku gdybyśmy wpisali kolejny element po elemencie biały, miał by on wartość 1, chyba że przypisali byś my mu jakąś konkretną wartość. To tyle na temat enumeracji które to bardzo u ułatwiają nam wiele mechanizmów jak i pozwalają się uchronić przed wieloma błędami. Spróbuj stworzyć jeszcze wiele zastosowań dla enumeracji, np. walutę, niech słowo dwazłote zawiera wartość 2 a jedenzłoty 1 itd…