Entiendo cómo funcionan los Enum en C#, y obtengo lo que el atributo Flags trae a la mesa.¿Múltiples formas de definir C# Enums con el atributo [Flags]?
Vi esta pregunta, here. Que recomienda el primer sabor, pero no proporciona ninguna razón/justificación para ello.
¿Hay alguna diferencia en la forma en que se definen estos dos, es una mejor que la otra? ¿Cuáles son las ventajas de usar el primer synax como lugar del segundo? Siempre he usado el segundo sabor al definir Flags tipo Enums ... ¿Lo he estado haciendo mal todo este tiempo?
[Serializable]
[Flags]
public enum SiteRoles
{
User = 1 << 0,
Admin = 1 << 1,
Helpdesk = 1 << 2
}
Es que no es el mismo que
[Serializable]
[Flags]
public enum SiteRoles
{
User = 1,
Admin = 2,
Helpdesk = 4
}
El código IL producido para estos 2 fragmentos de código es el mismo. –
Encuentra el error en este código: BackupOperator = 1073714824. Primero puedes evitar el error diciendo BackupOperator = 1 << 30 –
Gracias por la información, utilizaré el primer acercamiento, ya que parece mejor para todos menos los casos más simples. – Nate