C# Academy · Ders

Flags Enum'ları ve Bitsel Birleştirmeler

Enum değerlerini Flags özniteliğiyle birleştirin.

2. ders / 413 adım

Flags Enum'ları ve Bitsel Birleştirmeler, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 4 dersten oluşur.

Bayraklı Numaralandırmalar

Bayraklı bir numaralandırma, seçeneklerin birleşimini temsil eder. Buna [Flags] özniteliğini ekleyin ve her üyeye farklı bir ikinin kuvvetini verin.

using System;

[Flags]
enum Access { None = 0, Read = 1, Write = 2, Execute = 4 }
class Program {
    static void Main() {
        Access a = Access.Read | Access.Write;
        Console.WriteLine(a);
    }
}

İkinin Kuvvetleri

Her bayrak benzersiz bir bit kaplamalıdır: 1, 2, 4, 8, 16. Böylece değerler çakışmadan birleştirilebilir.

using System;

[Flags]
enum Perm { Read = 1, Write = 2, Delete = 4, Share = 8 }
class Program {
    static void Main() {
        Console.WriteLine((int)Perm.Share);
    }
}

OR ile Birleştirme

Bayrakları tek bir değerde birleştirmek için bit düzeyinde OR (|) kullanın.

using System;

[Flags]
enum Access { None = 0, Read = 1, Write = 2, Execute = 4 }
class Program {
    static void Main() {
        Access a = Access.Read | Access.Execute;
        Console.WriteLine((int)a);
    }
}

HasFlag ile Denetleme

HasFlag, birleşik bir değerin belirli bir bayrağı içerip içermediğini sınar.

using System;

[Flags]
enum Access { None = 0, Read = 1, Write = 2, Execute = 4 }
class Program {
    static void Main() {
        Access a = Access.Read | Access.Write;
        Console.WriteLine(a.HasFlag(Access.Write));
        Console.WriteLine(a.HasFlag(Access.Execute));
    }
}

Bit Düzeyinde AND ile Denetleme

Bir bayrağı & ile de sınayabilir ve sonucu sıfır olmayan bir değerle karşılaştırabilirsiniz; bu yöntem hızlı ve açıktır.

using System;

[Flags]
enum Access { None = 0, Read = 1, Write = 2 }
class Program {
    static void Main() {
        Access a = Access.Read | Access.Write;
        bool canWrite = (a & Access.Write) != 0;
        Console.WriteLine(canWrite);
    }
}

Bayrak Kaldırma

Tümleyeniyle AND işlemi uygulayarak bir bayrağı temizleyin: a &= ~Access.Write.

using System;

[Flags]
enum Access { None = 0, Read = 1, Write = 2, Execute = 4 }
class Program {
    static void Main() {
        Access a = Access.Read | Access.Write;
        a &= ~Access.Write;
        Console.WriteLine(a);
    }
}

Bayrak Ekleme

Bir bayrağı OR işlemiyle ekleyin. Bayrak zaten mevcutsa hiçbir şey değişmez.

using System;

[Flags]
enum Access { None = 0, Read = 1, Write = 2, Execute = 4 }
class Program {
    static void Main() {
        Access a = Access.Read;
        a |= Access.Execute;
        Console.WriteLine(a);
    }
}

Bayrak Değiştirme

XOR (^), tek adımda bir bayrağı açar veya kapatır.

using System;

[Flags]
enum Access { None = 0, Read = 1, Write = 2 }
class Program {
    static void Main() {
        Access a = Access.Read;
        a ^= Access.Write;
        Console.WriteLine(a);
        a ^= Access.Write;
        Console.WriteLine(a);
    }
}

[Flags] Neden Önemlidir

[Flags] özniteliği, ToString yönteminin tek bir sayı yerine birleşik adları yazdırmasını sağlar.

using System;

[Flags]
enum Access { None = 0, Read = 1, Write = 2, Execute = 4 }
class Program {
    static void Main() {
        Access a = Access.Read | Access.Execute;
        Console.WriteLine(a);
    }
}

Birleşik Üyeler Tanımlama

All gibi birleşimlerden oluşan kolaylık üyeleri tanımlayabilirsiniz.

using System;

[Flags]
enum Access { None = 0, Read = 1, Write = 2, Execute = 4, All = Read | Write | Execute }
class Program {
    static void Main() {
        Console.WriteLine((int)Access.All);
    }
}

Uygulamada Bayraklar

Bayraklar, izinleri, özellik anahtarlarını ve seçenek kümelerini tek bir tamsayı içinde kompakt biçimde modeller.

using System;

[Flags]
enum Feature { None = 0, Dark = 1, Beta = 2, Sync = 4 }
class Program {
    static void Main() {
        Feature f = Feature.Dark | Feature.Sync;
        Console.WriteLine(f.HasFlag(Feature.Beta));
    }
}

Hızlı Kontrol

Bayraklı numaralandırmalar konusundaki anlayışınızı sınayın.

Özet

Bir [Flags] numaralandırmasında her üyeye benzersiz bir ikinin kuvveti verilir; böylece bayraklar | ile birleştirilir ve HasFlag veya & ile denetlenir. |= ile ekler, &= ~ ile kaldırır ve ^= ile değiştirirsiniz.

Öznitelik, ToString yönteminin birleşik adları yazdırmasını sağlar; ayrıca All gibi kolaylık üyeleri tanımlayabilirsiniz.

Başlamak ücretsiz

Yapay zeka eğitmeniyle C# öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
93
Dersler
346

Sıkça Sorulan Sorular

“Flags Enum'ları ve Bitsel Birleştirmeler” dersi ücretsiz mi?

Evet — “Flags Enum'ları ve Bitsel Birleştirmeler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 4 dersten oluşur.

“Flags Enum'ları ve Bitsel Birleştirmeler” dersinde ne öğreneceğim?

Enum değerlerini Flags özniteliğiyle birleştirin. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C# Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Flags Enum'ları ve Bitsel Birleştirmeler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Enum Tanımlama ve Kullanma
  2. Flags Enum'ları ve Bitsel Birleştirmeler
  3. Enum Dönüşümleri ve Ayrıştırma
  4. Enum Değerleri Üzerinde Yineleme
← C# Academy Sayfasına Dön