source: Include/system/enum.sbp@ 210

Last change on this file since 210 was 210, checked in by dai, 17 years ago

空のソースコードによって生成された実行ファイルのバイナリサイズを300KBから100KBに落とした(Enum制御に関するコードジェネレータを改良)。

File size: 1.2 KB
RevLine 
[1]1Class EnumBase
2Protected
[210]3 value As Long
4 lpszName As LPSTR
[1]5Public
[210]6 Sub EnumBase(value As Long,lpszName As LPSTR)
7 This.value = value
8 This.lpszName = lpszName
[1]9 End Sub
[201]10
[1]11 Sub ~EnumBase()
12 End Sub
13
[210]14 Override Function ToString() As String
15 Return New String( lpszName )
16 End Function
[1]17
[210]18 Sub Copy(obj As EnumBase)
19 This.value = obj.value
20 This.lpszName = obj.lpszName
[1]21 End Sub
[131]22
[1]23 Function Operator() As Long
[210]24 Return This.value
[1]25 End Function
[26]26
[210]27 Function Operator == (value As Long) As Boolean
28 If This.value = value Then
[201]29 Return True
[26]30 Else
[201]31 Return False
[26]32 End If
33 End Function
[131]34
[210]35 Function Operator == (enumBase As EnumBase) As Boolean
36 If This.value = enumBase.value Then
37 Return True
38 Else
39 Return False
40 End If
[131]41 End Function
42
[210]43 Function Operator or (enumBase As EnumBase) As EnumBase
44 Return New EnumBase(This.value Or enumBase.value)
[131]45 End Function
[201]46
[210]47 Function Operator and (enumBase As EnumBase) As EnumBase
48 Return New EnumBase(This.value And enumBase.value)
[131]49 End Function
[201]50
[210]51 Function Operator xor (enumBase As EnumBase) As EnumBase
52 Return New EnumBase(This.value Xor enumBase.value)
[131]53 End Function
[210]54End Class
Note: See TracBrowser for help on using the repository browser.