Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
C#’ta, bir enum değerine birden fazla sembolik değer atama işlemine “bit düzeyinde işaretleme” veya “bayt düzeyinde işaretleme” denir. Bu işlem, enum içindeki değerlerin, işaretlenmiş (seçilmiş) veya işaretlenmemiş olmalarına göre kullanılabilmesini sağlar. Bu tür enum’lar genellikle “bayrak” enum’ları olarak adlandırılır ve birçok farklı özelliği etkinleştirmek veya devre dışı bırakmak gibi durumlar için kullanılır.
Aşağıdaki gibi bir bayrak enum tanımlanabilir:
[Flags]
enum Yetkiler
{
None = 0,
Okuma = 1,
Yazma = 2,
Duzenleme = 4,
Silme = 8,
Yonetim = 16
}
Yukarıdaki örnekte, “Yetkiler” adlı bir bayrak enum tanımlandı. Her bir yetki sembolik bir değere sahiptir. Ancak bu sembolik değerler 2’nin üssü olarak artar (1, 2, 4, 8, 16, vb.).
Birden fazla yetkiyi tek bir değer içinde işaretleyerek temsil etmek için “bitwise OR” işlemi kullanılır. Örneğin, “Okuma” ve “Yazma” yetkilerini içeren bir değer oluşturmak için:
Yetkiler kullaniciYetkileri = Yetkiler.Okuma | Yetkiler.Yazma;
Bir değerde belirli bir bayrağın işaretlenip işaretlenmediğini kontrol etmek için “bitwise AND” işlemi kullanılır. Örneğin, bir kullanıcının “Yazma” yetkisinin olup olmadığını kontrol etmek için:
bool yazmaYetkisiVar = (kullaniciYetkileri & Yetkiler.Yazma) == Yetkiler.Yazma;
Bir bayrağı bir değerden kaldırmak için “bitwise NOT” işlemi kullanılır. Örneğin, “Yazma” yetkisini kaldırmak için:
kullaniciYetkileri &= ~Yetkiler.Yazma;
Bayrak enum’ları, genellikle kullanıcı yetkileri, seçenekler, işlem türleri gibi durumlar için kullanılır. Bu sayede bir değer içinde birden fazla seçeneği işaretleme ve kontrol etme esnekliği elde edilir. Ancak dikkat edilmesi gereken bir nokta, her sembolik değerin 2’nin üssü olarak artması gerektiğidir, böylece işaretlenmiş sembollerin benzersiz bir bileşimi elde edilir.
Bir sonraki yazıda görüşmek dileğiyle!”