前の記事に続く第二弾。(^^;)
突っ込みがくる前に書いてみた。
.NET (CLR) における列挙体の正体は、System.Enum クラスを継承した値型のクラスです。
いや、そんなことはオブジェクト ブラウザを見ればすぐに察しがつくことなのですがw
(前回の記事と同じようなこと書いてるしw)
クラスの定義で System.Enum クラスを継承しようとすると、コンパイラに叱られます。(^^;)
列挙体は暗黙的に System.Enum だけを継承できるクラスというわけです。
System.Enum 自体も System.ValueType から継承しているクラスですから当然といえば当然ですね。
下記の列挙体は、(前回は C# だったので今回は VB で書きます)
VB.NET
Namespace System
Public Enum DayOfWeek As Integer
Sunday = 0
Monday = 1
Tuesday = 2
Wednesday = 3
Thursday = 4
Friday = 5
Saturday = 6
End Enum
End Namespace
次のようなクラスであると考えることができます。
NotInheritable クラスになっているのは継承ができないからです。
VB.NET
Namespace System
Public NotInheritable Class DayOfWeek : Inherits System.Enum
Public Const Sunday As Integer = 0
Public Const Monday As Integer = 1
Public Const Tuesday As Integer = 2
Public Const Wednesday As Integer = 3
Public Const Thursday As Integer = 4
Public Const Friday As Integer = 5
Public Const Saturday As Integer = 6
End Class
End Namespace
た、多分ね。(^^;)
関連記事