[Flags]
ist ziemlich praktisch. Syntaktischer Zucker, um sicher zu sein, aber immer noch ziemlich nett.
[Flags]
enum SandwichStuff
{
Cheese = 1,
Pickles = 2,
Chips = 4,
Ham = 8,
Eggs = 16,
PeanutButter = 32,
Jam = 64
};
public Sandwich MakeSandwich(SandwichStuff stuff)
{
Console.WriteLine(stuff.ToString());
// ...
}
// ...
MakeSandwich(SandwichStuff.Cheese
| SandwichStuff.Ham
| SandwichStuff.PeanutButter);
// produces console output: "Cheese, Ham, PeanutButter"
Leppie weist auf etwas hin, das mir nicht bewusst war und das meine Begeisterung für dieses Attribut etwas dämpft: Es gibt no den Compiler anweisen, Bitkombinationen als gültige Werte für Aufzählungsvariablen zuzulassen, erlaubt der Compiler dies für Aufzählungen trotzdem. Mein C++-Hintergrund, der durchscheint... seufz.