2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VB.NET Enum列挙型の記述と挙動について

Last updated at Posted at 2018-11-08

列番号や連番を管理する時に列挙型(Enum)を使うことがしばしばあります。

その時の挙動が妙だったのでメモしておきます。

#パターン1

Private Enum eTEST
    a
    b
    c
    d
End Enum

要素の値は以下のようになります。

    a ⇒ 0
    b ⇒ 1
    c ⇒ 2
    d ⇒ 3

列挙体は指定がなければ0から順にインクリメントします。

#パターン2

Private Enum eTEST
    a = 1
    b = 2
    c = 3
    d = 4
End Enum

要素の値は以下のようになります。

    a ⇒ 1
    b ⇒ 2
    c ⇒ 3
    d ⇒ 4

要素を指定した場合はそれぞれ指定した値になります。

#パターン3

Private Enum eTEST
    a = 1
    b = 2
    c
    d = 3
    e
    f = 4
    g
End Enum

要素の値は以下のようになります。

    a ⇒ 1
    b ⇒ 2
    c ⇒ 3
    d ⇒ 3
    e ⇒ 4
    f ⇒ 4
    g ⇒ 5

c に指定がない場合、一つ前の b の数にインクリメントします。
その次の d は指定しているので値は 3 になります。
「指定がないと上の要素にインクリメントして設定する」というルールのようです。

#パターン4

Private Enum eTEST
    a = 1
    b = 2
    c
    d = 3
    e
    f = b ☜ここ
    g
End Enum

上記のように別の要素を割り当てると、要素の値は以下のようになります。

    a ⇒ 1
    b ⇒ 2
    c ⇒ 3
    d ⇒ 3
    e ⇒ 4
    f ⇒ 2 ☜
    g ⇒ 3 ☜

こんな感じの書き方もできるみたいです。
(どんな場面で使うんだろう)

#まとめ
可読性が下がるんで、
Enumには値を指定せずに自動でインクリメントさせたほうがいいなと思いました。

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?