変更できない整数値のグループ
変更する必要がない整数値をグループ化するとき、列挙型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)