Me gustaría escribir la opción enum o integer para pasar a mis métodos. ¿Hay un patrón o un método en C# para verificar si una opción (int 1,2,4,8, ...) es verdadera o falsa? Creo que debería ser posible fácilmente a través de funciones binarias.¿Hay un patrón o un método en C# para verificar si una opción (int 1,2,4,8, ...) es verdadera o falsa?
class Program
{
public enum Option
{
Option_A = 1,
Option_B = 2,
Option_C = 4,
Option_D = 8,
}
static void Main(string[] args)
{
int activeOption = 5; // Means I activeted the Option_A and Option_C
if (IsOption(activeOption, Option.Option_A)) { /*do work*/ }
if (IsOption(activeOption, Option.Option_B)) { /*do work*/ }
if (IsOption(activeOption, Option.Option_C)) { /*do work*/ }
if (IsOption(activeOption, Option.Option_D)) { /*do work*/ }
}
private static bool IsOption(int activeOption, Option option)
{
/*Evaluate if IsOption is true or false*/
throw new NotImplementedException();
}
}
EDITAR
Estoy limitado el número de opciones que puedo crear de esta manera?
¿Por qué está utilizando una int en lugar de una opción? –
@Martinho si nos fijamos en el ejemplo del código, es necesario seleccionar varias opciones.Un int es más eficiente en el uso del espacio que una colección de opciones. –
@Robin: una opción enum es tan eficiente desde el punto de vista del espacio como una int. Adivina por qué: en realidad es un int. –