Sobes.tech
Junior — Middle

¿En qué situaciones es mejor usar un tipo de enumeración con banderas para combinaciones de bits?

sobes.tech AI

Respuesta de la IA

El tipo de enumeraciones con banderas (banderas de bits) en C# se utiliza para representar un conjunto de opciones o estados booleanos que pueden combinarse juntos. Este enfoque es útil cuando se necesita almacenar varias características independientes en un solo número.

Situaciones para su uso:

  • Cuando se necesita almacenar y transmitir eficazmente múltiples banderas lógicas.
  • Cuando existen diferentes combinaciones de estados y se requiere verificar rápidamente la presencia de una bandera específica mediante operaciones a nivel de bits.
  • Para configurar parámetros, por ejemplo, modos de operación, permisos de acceso, opciones de configuración.

Ejemplo:

[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

Aquí, se pueden combinar permisos y verificarlos mediante operaciones a nivel de bits. Este enfoque ahorra memoria y simplifica la lógica de trabajo con múltiples opciones.