Capisco come funziona Enums in C# e ottengo ciò che l'attributo Flags porta in tavola.Più modi per definire C# Enum con l'attributo [Flags]?
Ho visto questa domanda, here. Che raccomanda il primo sapore, ma non fornisce alcun motivo/giustificazione per questo.
C'è una differenza nel modo in cui questi due sono definiti, è uno migliore dell'altro? Quali sono i vantaggi nell'usare la prima synax al posto della seconda? Ho sempre usato il secondo sapore quando ho definito i tipi di enumerazione di Flags ... ho sbagliato tutto questo tempo?
[Serializable]
[Flags]
public enum SiteRoles
{
User = 1 << 0,
Admin = 1 << 1,
Helpdesk = 1 << 2
}
È che non è la stessa
[Serializable]
[Flags]
public enum SiteRoles
{
User = 1,
Admin = 2,
Helpdesk = 4
}
Il codice IL prodotto per questi due frammenti di codice è lo stesso. –
Individuare il bug in questo codice: BackupOperator = 1073714824. È possibile evitare il bug in primo luogo dicendo BackupOperator = 1 << 30 –
Grazie per tutte le informazioni, userò il primo approccio, poiché sembra migliore per tutti tranne i casi più semplici. – Nate