Sobes.tech
Junior — Middle

Em que situações é melhor usar um tipo de enumeração com flags para combinações de bits?

sobes.tech IA

Resposta da IA

O tipo de enumerações com flags (flags de bits) em C# é usado para representar um conjunto de opções ou estados booleanos que podem ser combinados. Essa abordagem é útil quando é necessário armazenar várias características independentes em um único número.

Situações para aplicação:

  • Quando é necessário armazenar e transmitir eficientemente múltiplas flags lógicas.
  • Quando existem várias combinações de estados e é preciso verificar rapidamente a presença de uma flag específica usando operações bit a bit.
  • Para configurar parâmetros, por exemplo, modos de operação, permissões de acesso, opções de configuração.

Exemplo:

[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

Aqui, é possível combinar permissões e verificá-las usando operações bit a bit. Essa abordagem economiza memória e simplifica a lógica de trabalho com múltiplas opções.