Wyliczenia
Typ wyliczeniowy (ang. enumeration) jest bardzo ważnym typem danych na platformie .NET, wiele stałych w .NET Framework zdefinowanych jest jako wyliczenie. Klasa wyliczeniowa (Enum), zdefiniowana jest w przestrzni nazw System (System.Enum) i wygląda następująco:
Do utworzenia typu wyliczeniowego używamy słowa kluczowego enum. Przykładowe wyliczenie może wyglądać następująco:
Ktoś może spytać dlaczego, zainicjowana została tylko pierwsza zmienna, otóż każde kolejne wyliczenie dostaje numer o jeden wyższy od poprzednika (domyślnie wyliczenie zaczyna się od 0). Wyliczenie może także być zdefiniowane następująco:
W powyższym przypadku pierwszy element bedzie miał wartośc 0, drugi 3, trzeci 4 i ostatni 6.
Do wyliczenia można odwołać się na dwa sposoby. Jeżeli chcemy otrzymać nazwy elementów to musimy poprzedzić je nazwą typu wyliczeniowego:
W przypadku gdy chcemy otrzymać numer elementu to musi, powyższe odwołanie, rzutować na liczbę całkowitą, ponieważ elementy wyliczenia są zawsze typu całkowitego (domyślnie int), wygląda to następująco:
Domyślnie elementy typu wyliczeniowego są typu całkowitego (int) aczkolwiek w razie potrzeby możemy zawsze zmienić ten typ:
Na elementach typu wyliczeniowego można operować używając operatorów bitowych:
W takim przypadku, na ekranie konsoli zostanie wyświetlone:
Wt, Nd
7
W razie usunięcia atrybutu [Flags], na ekranie konsoli wyświetlony zostanie następujący wynik:
7
7
Do utworzenia typu wyliczeniowego używamy słowa kluczowego enum. Przykładowe wyliczenie może wyglądać następująco:
Ktoś może spytać dlaczego, zainicjowana została tylko pierwsza zmienna, otóż każde kolejne wyliczenie dostaje numer o jeden wyższy od poprzednika (domyślnie wyliczenie zaczyna się od 0). Wyliczenie może także być zdefiniowane następująco:
W powyższym przypadku pierwszy element bedzie miał wartośc 0, drugi 3, trzeci 4 i ostatni 6.
Do wyliczenia można odwołać się na dwa sposoby. Jeżeli chcemy otrzymać nazwy elementów to musimy poprzedzić je nazwą typu wyliczeniowego:
Oceny.dobra; // zwróci łańcuch znaków "dobra"
W przypadku gdy chcemy otrzymać numer elementu to musi, powyższe odwołanie, rzutować na liczbę całkowitą, ponieważ elementy wyliczenia są zawsze typu całkowitego (domyślnie int), wygląda to następująco:
Domyślnie elementy typu wyliczeniowego są typu całkowitego (int) aczkolwiek w razie potrzeby możemy zawsze zmienić ten typ:
Na elementach typu wyliczeniowego można operować używając operatorów bitowych:
using System;
namespace FooApp
{
[Flags]
enum Days { Pn, Wt, Śr, Czw, Pt, So, Nd };
class Program
{
static void Main(string[] args)
{
Days MyDays = Days.Nd | Days.So;
Console.WriteLine(MyDays);
Console.WriteLine((int)MyDays);
Console.Read();
}
}
}
namespace FooApp
{
[Flags]
enum Days { Pn, Wt, Śr, Czw, Pt, So, Nd };
class Program
{
static void Main(string[] args)
{
Days MyDays = Days.Nd | Days.So;
Console.WriteLine(MyDays);
Console.WriteLine((int)MyDays);
Console.Read();
}
}
}
W takim przypadku, na ekranie konsoli zostanie wyświetlone:
Wt, Nd
7
W razie usunięcia atrybutu [Flags], na ekranie konsoli wyświetlony zostanie następujący wynik:
7
7



Albo inaczej: dodać tam jaki tekst