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

Last change on this file since 506 was 475, checked in by dai, 16 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.