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
Line 
1Class EnumBase
2Protected
3 value As Long
4 lpszName As LPTSTR
5Public
6 Sub EnumBase(value As Long,lpszName As LPTSTR)
7 This.value = value
8 This.lpszName = lpszName
9 End Sub
10
11 Sub EnumBase( enumBase As EnumBase )
12 This.value = enumBase.value
13 This.lpszName = enumBase.lpszName
14 End Sub
15
16 Sub ~EnumBase()
17 End Sub
18
19 Override Function ToString() As String
20 Return New String( lpszName )
21 End Function
22
23 Sub Copy(obj As EnumBase)
24 This.value = obj.value
25 This.lpszName = obj.lpszName
26 End Sub
27
28 Function Operator() As Int64
29 Return This.value
30 End Function
31 Function Operator() As Long
32 Return This.value
33 End Function
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
40
41 Function Operator == (value As Long) As Boolean
42 If This.value = value Then
43 Return True
44 Else
45 Return False
46 End If
47 End Function
48
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
55 End Function
56
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
65 Function Operator or (enumBase As EnumBase) As Boolean
66 Return ( This.value or enumBase.value ) <> 0
67 End Function
68
69 Function Operator and (enumBase As EnumBase) As Boolean
70 Return ( This.value and enumBase.value ) <> 0
71 End Function
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
80/*
81 Function Operator xor (enumBase As EnumBase) As EnumBase
82 Return New EnumBase(This.value Xor enumBase.value)
83 End Function
84*/
85End Class
Note: See TracBrowser for help on using the repository browser.