Sobes.tech
Junior — Middle

რის დროს უკეთესია გამოიყენოთ ფლაგებით enum ტიპი ბიტური კომბინაციებისათვის?

sobes.tech AI

პასუხი AI-სგან

C# dilində bayraq tipləri (bit bayraqları) istifadə olunur, bu da birgə istifadə edilə bilən boolean seçimlər və ya vəziyyətlər toplusunu təmsil edir. Bu yanaşma, bir neçə müstəqil xüsusiyyəti tək bir ədəddə saxlamaq lazım olduqda əlverişlidir.

İstifadə halları:

  • Bir neçə məntiqi bayrağı səmərəli saxlamaq və ötürmək lazım olduqda.
  • Müxtəlif vəziyyətlərin müxtəlif kombinasiyaları mümkün olduqda və müəyyən bir bayrağın olub-olmadığını sürətlə yoxlamaq üçün bit əməliyyatlarından istifadə olunduqda.
  • Parametrləri konfiqurasiya etmək üçün, məsələn, iş rejimləri, giriş hüquqları, konfiqurasiya seçimləri.

Misal:

[Flags]
enum FileAccess {
    Read = 1,       // 0001
    Write = 2,      // 0010
    Execute = 4,    // 0100
    Delete = 8      // 1000
}

FileAccess permissions = FileAccess.Read | FileAccess.Write;

bool canWrite = (permissions & FileAccess.Write) == FileAccess.Write; // true

Burada giriş hüquqlarını birləşdirə və onları bit əməliyyatları ilə yoxlaya bilərsiniz. Bu yanaşma yaddaşdan qənaət edir və çoxsaylı seçimlərlə işləməyi sadələşdirir.