FreeBASIC マニュアルのトップに戻る

FreeBASIC Enum

目次→言語リファレンス→変数とデータ型→ユーザ定義型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

方言差:
QBからの違い:
参照:
ユーザ定義型 に戻る
←リンク元に戻る プログラム開発関連に戻る
ページ歴史:2021-12-13 03:54:47
日本語翻訳:WATANABE Makoto、原文著作者:SysOp

ホームページのトップに戻る

表示-非営利-継承