using System;
namespace FlagsEnum
{
class Program
{
//Enum üyelerini birleştirebilriz.
[Flags]//Flags etiketini koymazsak ToSting() metodu enumun değerini int olarak çevirir.
public enum BorderSides { None = 0, Left = 1, Right = 2, Top = 4, Bottom = 8 }
//Birleşmiş enumları | ve & kullanarak gösterelim.
static void Main(string[] args)
{
BorderSides leftRight = BorderSides.Left | BorderSides.Right;//Burada Enum her iki değerin birleşimi olarak yazıldı.
if ((leftRight & BorderSides.Left) != 0)
Console.WriteLine("Includes Left");
if ((leftRight & BorderSides.Right) != 0)
Console.WriteLine("Includes Right");
if ((leftRight & BorderSides.Top) != 0)//Burası çalışmaz çünkü tanımladığımız yerde Top değerini birleştirmedik.
Console.WriteLine("Includes Top");
string formatted = leftRight.ToString();
Console.WriteLine("formatted = " + formatted);//"Left, Right"
BorderSides s = BorderSides.Left;
s |= BorderSides.Right;//bu aynı zamanda s=BorderSides.Left|BorderSides.Right ifadesine eşittir.
Console.WriteLine(s == leftRight);//true
s ^= BorderSides.Right; // BorderSides.Right ı sildik.
Console.WriteLine(s);//Left
Console.ReadKey();
/*Enumda Kullanılan Operatörler
= == != < > <= >= + - ^ & | += -= ++ -- sizeof
*/
}
}
}