Ich verstehe, wie Enums in C# arbeiten, und ich bekomme, was das Attribut Flags in die Tabelle bringt.Mehrere Möglichkeiten zum Definieren von C# Enums mit Attribut [Flags]?
Ich habe diese Frage gesehen, here. Das empfiehlt den ersten Geschmack, gibt aber keinen Grund/Begründung dafür.
Gibt es einen Unterschied in der Art und Weise, in der diese beiden definiert sind, ist einer besser als der andere? Was sind die Vorteile, wenn Sie das erste Synax anstelle des zweiten verwenden? Ich habe immer den zweiten Geschmack verwendet, wenn ich Flags Typ Enums definiert habe ... habe ich die ganze Zeit falsch gemacht?
[Serializable]
[Flags]
public enum SiteRoles
{
User = 1 << 0,
Admin = 1 << 1,
Helpdesk = 1 << 2
}
Ist das nicht das gleiche wie
[Serializable]
[Flags]
public enum SiteRoles
{
User = 1,
Admin = 2,
Helpdesk = 4
}
Der für diese 2-Code-Fragmente erzeugte IL-Code ist derselbe. –
Finden Sie den Fehler in diesem Code: BackupOperator = 1073714824. Sie können den Fehler in erster Linie vermeiden, indem Sie BackupOperator = 1 << 30 –
Danke für die Info alle, ich werde den ersten Ansatz verwenden, da es besser scheint für alle außer den einfachsten Fällen. – Nate