Enum#
Introduction#
An enum is a user defined data type that contains a set of named integer constants. Enums are frequently used to implement typesafe 'flags' or 'bitmasks'.
Unintialized enum members are automatically assigned constant integer values starting with 0 and increasing by 1 for each successive enum member:
1 2 3 4 | Enum MyEnum A,B,C ' A, B, C will be assigned the values 0, 1, 2 D,E,F ' D, E, F will be assigned the values 4, 5, 6 End |
You can also initialize enum members with a constant integer value:
1 2 3 4 | Enum MyEnum A=10,B=20,C=30 ' A, B, C will be assigned the values 10, 20, 30 D,E,F ' D, E, F will be assigned the values 31, 32, 33 End |
Enum members are accessed using the 'dot' operator:
1 | Local e:MyEnum = MyEnum.A |
Enum values can be implictly converted to any integer type, and can be used with the & (bitwise 'and'), | (bitwise 'or') and ~ (bitwise 'exclusive-or') binary operators.
This allows you to use enums to represent 'bitmasks'.
Enum values can also be compared with enum values of the same type, or with a Null which represents an enum value with the integer value 0.