Enum
Declares an enumerated type.
Enum [typename [ Explicit ] ]
typename
Enum, short for enumeration, declares a list of symbol names that correspond to discrete values. If no initial value is given, the first item will be set to 0. Each subsequent symbol has a value one more than the previous unless expression is given.
Symbols may be each on their own line, or separated on a single line by commas.
An Enum is a useful way of grouping together a set of related Constants. A symbol can be accessed like a constant, e.g: a = symbolname. But if the name clashes with another symbol, it must be resolved using typename.symbolname. This resolution method is always required if you make the enum Explicit.
A non-Explicit Enum declared inside an Extern ... End Extern block will add its constants to the parent namespace directly, as in C, instead of acting as a namespace on its own. It disallows the typename.symbolname style of access, and the constants may conflict with other symbols from the parent namespace.
An Enum can be passed as a user defined type to Overloaded operator functions.
Syntax
Enum [typename [ Explicit ] ]
symbolname [= expression] [, ...]
...
End Enum...
Parameters
typename
Name of the Enum
symbolnameName of the constant
expressionA constant expression
ExplicitRequires that symbols must be explicitly referred to by typename.symbolname
Description
Enum, short for enumeration, declares a list of symbol names that correspond to discrete values. If no initial value is given, the first item will be set to 0. Each subsequent symbol has a value one more than the previous unless expression is given.
Symbols may be each on their own line, or separated on a single line by commas.
An Enum is a useful way of grouping together a set of related Constants. A symbol can be accessed like a constant, e.g: a = symbolname. But if the name clashes with another symbol, it must be resolved using typename.symbolname. This resolution method is always required if you make the enum Explicit.
A non-Explicit Enum declared inside an Extern ... End Extern block will add its constants to the parent namespace directly, as in C, instead of acting as a namespace on its own. It disallows the typename.symbolname style of access, and the constants may conflict with other symbols from the parent namespace.
An Enum can be passed as a user defined type to Overloaded operator functions.
Example
Enum MyEnum
option1 = 1
option2
option3
End Enum
Dim MyVar As MyEnum
MyVar = option1
Select Case MyVar
Case option1
Print "Option 1"
Case option2
Print "Option 2"
Case option3
Print "Option 3"
End Select
option1 = 1
option2
option3
End Enum
Dim MyVar As MyEnum
MyVar = option1
Select Case MyVar
Case option1
Print "Option 1"
Case option2
Print "Option 2"
Case option3
Print "Option 3"
End Select
Dialect Differences
- Explicit Enum not available in the -lang qb dialect unless referenced with the alias __Explicit.
Differences from QB
- New to FreeBASIC
See also