Sobes.tech
Junior — Middle

W jakich sytuacjach lepiej stosować typ wyliczenia z flagami do kombinacji bitowych?

sobes.tech AI

Odpowiedź od AI

Typ wyliczeń z flagami (flagami bitowymi) w C# służy do reprezentowania zestawu opcji lub stanów logicznych, które można łączyć razem. Takie podejście jest przydatne, gdy trzeba przechowywać kilka niezależnych cech w jednej liczbie.

Przypadki zastosowania:

  • Gdy konieczne jest efektywne przechowywanie i przekazywanie wielu flag logicznych.
  • Gdy istnieją różne kombinacje stanów i trzeba szybko sprawdzać obecność konkretnej flagi za pomocą operacji bitowych.
  • Do konfigurowania parametrów, np. trybów pracy, uprawnień dostępu, opcji konfiguracji.

Przykład:

[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

Tutaj można łączyć uprawnienia i sprawdzać je za pomocą operacji bitowych. Takie podejście oszczędza pamięć i upraszcza logikę pracy z wieloma opcjami.