Physical Address

304 North Cardinal St.
Dorchester Center, MA 02124

Çoklu Enum Değerlerini Etkinleştirme

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.

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.

Bayrak Enum Tanımlama:

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.).

Bayrakları İşaretleyerek Değer Oluşturma:

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;

Bayrakları Kontrol Etme:

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;

Bayrakları Kaldırma:

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.

“Başarı, başarısızlığa düşmeyi bilmek ve yine de ileriye gitmektir.” – Winston Churchill

Bir sonraki yazıda görüşmek dileğiyle!”

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


9 + 9 = ?