Todos recordamos que podemos usar los enumeradores como flags y luego recuperar la selección con operaciones de bit, por ejemplo, tomemos el siguiente enumerador (tomado de la documentación de MSDN):
[Flags]
public enum MultiHue {
Black = 0,
Red = 1,
Green = 2,
Blue = 4
}
Podemos pedirle al usuario de la API que seleccione un set de colores o tonalidades y luego obtener su selección mediante bit operations:
var hue = MultiHue.Black | MultiHue.Red; var isRed = ((hue & MultiHue.Red) == MultiHue.Red); var isGreen = ((hue & MultiHue.Green) == MultiHue.Green);
Bien, ahora en la .Net Framework 4.0 tenemos un nuevo método que nos hace mas “claro” la lectura de la bit flag:
var hue = MultiHue.Black | MultiHue.Red; var isRed = hue.HasFlag(MultiHue.Red); var isGreen = hue.HasFlag(MultiHue.Green);
No se ustedes pero este último es de mejor lectura para mi.
¡Saludos!
