Xojo 2021r2 introduces a couple of enhancements to enumerations in Xojo. The enumeration editor now shows a preview of what the value will be so there’s no more guessing or counting.
In addition, we’ve added a new Binary option which allows you to automatically create sets that aren’t mutually exclusive. That is, the values of the elements are automatically powers of two and can have binary operations applied to them:
This new feature comes with the requirement that they be placed inside a Module because they’re rendered into your project as a Class. The reason for this is that these classes automatically have some helper methods on them to make working with the binary data easier.
- An Operator_Convert which takes an Integer:
Var x as MyEnum = 3 // MyEnum.George, MyEnum.John
- …as well as one that returns an integer:
Var y as Integer = MyEnum.George // y = 2
- Automatic conversion to and from Integer:
Var x as Integer = MyEnum.Ringo // x = 4
- Binary operations And, Or and Xor:
Var x as MyEnum = MyEnum.Paul Or MyEnum.Mary // x has a value of 40
- Equality operations so you can compare the internal value of one instance to another:
Var x as MyEnum = MyEnum.Paul
Var y as MyEnum = MyEnum.Ringo
If x = y Then
- Contains helper method:
If x.Contains(MyEnum.Peter) Then
- A Read-Only Value property so you can see the internal value in the debugger
Just like regular Enumerations, the editor also allows you to explicitly specify the value of an element:
This is so instead of having to write:
Var x as MyEnum = MyEnum.George Or MyEnum.John Or MyEnum.Ringo Or MyEnum.Paul
You can simply write:
Var x as MyEnum = MyEnum.TheBeatles
We hope that you’ll enjoy this feature as much as we do!