source: trunk/Include/system/enum.sbp@ 446

Last change on this file since 446 was 446, checked in by dai, 16 years ago

#71への対応。列挙型メンバの初期値に定数や列挙型メンバを指定できないバグを修正。

File size: 2.0 KB
RevLine 
[1]1Class EnumBase
2Protected
[210]3 value As Long
[282]4 lpszName As LPTSTR
[1]5Public
[282]6 Sub EnumBase(value As Long,lpszName As LPTSTR)
[210]7 This.value = value
8 This.lpszName = lpszName
[1]9 End Sub
[282]10
[446]11 Sub EnumBase( enumBase As EnumBase )
12 This.value = enumBase.value
13 This.lpszName = enumBase.lpszName
14 End Sub
15
[1]16 Sub ~EnumBase()
17 End Sub
18
[210]19 Override Function ToString() As String
20 Return New String( lpszName )
21 End Function
[1]22
[210]23 Sub Copy(obj As EnumBase)
24 This.value = obj.value
25 This.lpszName = obj.lpszName
[1]26 End Sub
[282]27
[396]28 Function Operator() As Int64
29 Return This.value
30 End Function
[1]31 Function Operator() As Long
[210]32 Return This.value
[1]33 End Function
[396]34 Function Operator() As DWord
35 Return This.value
36 End Function
37 Function Operator() As Boolean
38 Return ( This.value <> 0 )
39 End Function
[26]40
[210]41 Function Operator == (value As Long) As Boolean
42 If This.value = value Then
[201]43 Return True
[26]44 Else
[201]45 Return False
[26]46 End If
47 End Function
[131]48
[210]49 Function Operator == (enumBase As EnumBase) As Boolean
50 If This.value = enumBase.value Then
51 Return True
52 Else
53 Return False
54 End If
[131]55 End Function
[396]56
[406]57 Function Operator <> (value As Long) As Boolean
58 Return Not( This = value)
59 End Function
60
61 Function Operator <> (enumBase As EnumBase) As Boolean
62 Return Not( This = enumBase)
63 End Function
64
[396]65 Function Operator or (enumBase As EnumBase) As Boolean
66 Return ( This.value or enumBase.value ) <> 0
[131]67 End Function
[201]68
[396]69 Function Operator and (enumBase As EnumBase) As Boolean
70 Return ( This.value and enumBase.value ) <> 0
[131]71 End Function
[406]72
73 Function Operator or (enumBase As EnumBase) As EnumBase
74 Return New EnumBase( This.value or enumBase.value, This.lpszName )
75 End Function
76
77 Function Operator and (enumBase As EnumBase) As EnumBase
78 Return New EnumBase( This.value and enumBase.value, This.lpszName )
79 End Function
[396]80/*
[210]81 Function Operator xor (enumBase As EnumBase) As EnumBase
82 Return New EnumBase(This.value Xor enumBase.value)
[131]83 End Function
[288]84*/
[210]85End Class
Note: See TracBrowser for help on using the repository browser.