ENUM
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgEnum
- 最后更新: 2021-12-13
声明枚举类型。
语法
vb
Enum [typename [ Explicit ] ]
symbolname [= expression] [, ...]
...
End Enum参数
typename
Enum 的名称
symbolname
常量的名称
expression
常量表达式
Explicit
要求必须以 typename.symbolname 的形式显式引用符号
说明
Enum(枚举的缩写)声明一组与离散值对应的符号名称列表。如果未指定初始值,第一项将被设为 0。此后每个符号的值比前一个多 1,除非显式给出了 expression。
符号可以每行一个,也可以在同一行用逗号分隔。
Enum 是将一组相关 const 常量归为一组的有效方式。符号可以像常量一样访问,例如:a = symbolname。但若名称与其他符号冲突,则必须使用 typename.symbolname 来消歧义。若将枚举声明为 Explicit,则始终要求使用此解析方式。
在 Extern ... End Extern 块内声明的非 Explicit Enum,其常量会直接添加到父命名空间(与 C 语言行为一致),而非形成独立命名空间,同时不允许使用 typename.symbolname 方式访问,且常量可能与父命名空间的其他符号冲突。
Enum 不能包含任何成员过程或成员数据(仅限符号),但可以通过包含(有名或匿名)的方式嵌入 Type 中。
Enum 实例可以像任何用户自定义实例一样传递给过程(包括用于定义 Overloaded 运算符)。
无论定义了多少符号,Enum 实例的大小始终等于 Integer 的大小。
示例
start GeSHi
vb
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 Selectend GeSHi
在同一枚举中可以引用之前声明的符号名:
start GeSHi
vb
Enum MyEnum
option1 = 1
option2
option3
__
MAX_VALUE = __ -1
End Enum
Print "Option #1:", MyEnum.option1
Print "Option #2:", MyEnum.option2
Print "Option #3:", MyEnum.option3
Print "Max Value:", MyEnum.MAX_VALUEend GeSHi
输出:
Option #1: 1
Option #2: 2
Option #3: 3
Max Value: 3方言差异
- 在 -lang qb 方言中,Explicit Enum 不可用,除非使用别名
__Explicit引用。
与 QB 的区别
- FreeBASIC 新增
另请参阅
ConstOperator变量类型概览、限制及后缀对照表
返回 目录