FreeBASIC Enum
目次→言語リファレンス→変数とデータ型→ユーザ定義型→ENUM←オリジナル・サイト
列挙型を宣言します。
構文:
Enum [typename [ Explicit ] ]
symbolname [= expression] [, ...]
...
End Enum
パラメタ:
typename
Enum の名前。
symbolname
定数の名前。
expression
定数の式
Explicit
シンボルが、typename.symbolname によって明示的に参照されることを、要求します。
記述:
Enum は、enumeration(数え上げること、列挙) を短縮したもので、離散的な値に対応する、識別名のリストを、宣言します。
初期値を与えないと、最初の項目は、0 に設定されます。
その後の各シンボルは、 expression が与えられない場合、前の値より 1 大きくなります。
シンボルは、それぞれ別の行に書くか、あるいは、一つの行の中に、コンマで区切って、記述します。
Enum は、1セットの関連する定数(
constant)を、ひとまとめにする、有用な方法です。
シンボルには、定数のように、アクセスできます。
例:
a = symbolname
しかし、名前が、別のシンボルとぶつかる場合は、
typename.symbolname を使って、干渉を解決しなければなりません。
enum
Explicit を指定したときは、いつもこの解決法が必要になります。
Extern ... End Extern ブロックの中で宣言された、非(明示)
Explicit Enum は、それ自身の名前空間として働く代わりに、C の場合のように、直接その定数を、親名前空間に加えます。
これは、アクセスの
typename.symbolname スタイルを認めません。そして、定数は、親名前空間からの他のシンボルと衝突するかもしれません。
Enum は、メンバー手続きやメンバー・データ(シンボルのみ)を含めることはできませんが、持つことで
Type に含めることができます(名前付きか名前なし)。
Enum インスタンスは、ユーザー定義のインスタンスとして、手続き(
Overload された演算子の定義を含む)に渡すことができます。
Enum インスタンスのサイズは、常に
Integer のサイズになります(定義されているシンボルの数が、コンパイラー割り当ての単なる宣言であっても)。
例:
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
Sleep
同じ列挙内で先に宣言されたシンボル名を参照できます:
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_VALUE
Sleep
出力:
Option #1: 1
Option #2: 2
Option #3: 3
Max Value: 3
方言差:
-
Explicit Enum は、-lang qb 方言では、別名 __Explicit と共に参照をつけないと、利用できません。
QBからの違い:
参照:
ページ歴史:2021-12-13 03:54:47
日本語翻訳:WATANABE Makoto、原文著作者:SysOp