列挙型Enum [VB.NET]

Visual Basic.NET ADO.NETデータベースプログラミング

変更できない整数値のグループ

変更する必要がない整数値をグループ化するとき、列挙型Enumクラスを使うと便利です。列挙型Enumクラスは、ある特定の整数値でしか初期化できないデータ型です。数値にわかりやすい名前をつけておけば、何を意味するのか分りやすくなります。

Byte, Short, Integer, Longのいずれかの型

Enumの値は整数値に限られるので、指定できるAs句は、Byte, Short, Integer, Longのいずれかの型になります。As句を省略すると、Integer型になりますが、Option Strict Onの場合は、省略できません。

値を指定しない場合は、先頭が0となり、以降順に+1した値になります。次の例では、初期値を設定していないので、Mercury が 0、Venus が 1、Earth が 2、Mars が 3、Jupiter が 4 になります。

  Enum enumPlanet As Integer
      Mercury
      Venus
      Earth
      Mars
      Jupiter
  End Enum

任意の値を自由に設定することもできます。また一部の項目だけに設定することもできます。次の例では、Mercury が 0、Venus が 10、Earth が 11、Mars が 12、Jupiter が 13 になります。

  Enum enumPlanet As Integer
      Mercury
      Venus = 10
      Earth
      Mars
      Jupiter
  End Enum

重複した値をつけることもできます。次の例では、Mercury が 0、Venus も 0、Earth が 1、Mars も 1、Jupiter が 2 になります。

  Enum enumPlanet As Integer
      Mercury = 0
      Venus = 0
      Earth
      Mars = 1
      Jupiter
  End Enum

Enum列挙型にマイナス整数を設定することも可能です。次の例では、Mercury が 0、Venus が 1、Earth が -5、Mars が -4、Jupiter が -3 になります。

  Enum enumPlanet As Integer
      Mercury
      Venus
      Earth = -5
      Mars
      Jupiter
  End Enum

Enum列挙型の値を合計するサンプルプログラムです。たとえば、初期値を設定しない場合は、Mercury が 0、Venus が 1、Earth が 2、Mars が 3、Jupiter が 4 なので、sum は 10 になります。

  Dim sum As Integer = 0

  sum = sum + enumPlanet.Mercury
  sum = sum + enumPlanet.Venus
  sum = sum + enumPlanet.Earth
  sum = sum + enumPlanet.Mars
  sum = sum + enumPlanet.Jupiter

  Trace.WriteLine("sum = " & sum.ToString)