If I have an enum with multiple values which can be present at the same time, I create a Flags enum:
[Flags]
public enum Foo
{
None = 0,
A = 1,
B = 2,
C = 4,
D = 8
}
If I now want to pass the fact that every value is set I would have to do something like this:
Bar bar = new Bar(Foo.A | Foo.B | Foo.C | Foo.D);
Would it be considered bad practice/harmful/blasphemy to add an additional element All?
All = 15
This would save some space and time when there are a lot of values and passing them all is a common scenario.
As far as I understand the mechanics of flags enums (=bitfields), this should work. Are there any side effects I am missing or other reasons why you should not do that?
You can do that. But maybe you shoudn't use the value 15, but
All = A | B | C | D
There is a dangerous gotcha here where if you change All but the calling components are not recompiled, they will send the old All. If this is fine with you than so be it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With