source: trunk/ab5.0/ablib/src/system/enum.sbp @ 506

Last change on this file since 506 was 475, checked in by dai, 15 years ago

XmlSerializer?.Deserializeメソッドを実装(仮実装なため、数値メンバのシリアライズのみに留まっている)。
XmlNode?.LastChildメソッドを追加。
XmlNode?.NextSiblingメソッドを追加。
XmlNode?.PreviouseSiblingメソッドを追加。

File size: 1.8 KB
Line 
1Class EnumBase<T As 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        Return ( This.value = value )
43    End Function
44
45    Function Operator == (enumObj As T) As Boolean
46        Return ( This.value = enumObj.value )
47    End Function
48
49    Function Operator <> (value As Long) As Boolean
50        Return Not( This = value)
51    End Function
52
53    Function Operator <> (enumObj As T) As Boolean
54        Return Not( This = enumObj)
55    End Function
56
57    Function Operator or (enumObj As T) As Boolean
58        Return ( This.value or enumObj.value ) <> 0
59    End Function
60
61    Function Operator and (enumObj As T) As Boolean
62        Return ( This.value and enumObj.value ) <> 0
63    End Function
64
65    Function Operator or (enumObj As T) As T
66        Return New EnumBase( This.value or enumObj.value, This.lpszName )
67    End Function
68
69    Function Operator and (enumObj As T) As T
70        Return New EnumBase( This.value and enumObj.value, This.lpszName )
71    End Function
72/*
73    Function Operator xor (enumBase As EnumBase) As EnumBase
74        Return New EnumBase(This.value Xor enumBase.value)
75    End Function
76*/
77End Class
Note: See TracBrowser for help on using the repository browser.