source: Include/Classes/System/Object.ab@ 212

Last change on this file since 212 was 212, checked in by イグトランス (egtra), 17 years ago

Object.ReferenceEqualsを追加

File size: 1.7 KB
Line 
1Class Object
2
3Public
4
5 Sub Object()
6 End Sub
7 Sub ~Object()
8 End Sub
9
10 ' 2つのオブジェクトが等しいかどうかを判断する
11 Virtual Function Equals( object As Object ) As Boolean
12 If This.GetHashCode() = object.GetHashCode() Then
13 Return True
14 Else
15 Return False
16 End If
17 End Function
18 Static Function Equals( objectA As Object, objectB As Object ) As Boolean
19 If VarPtr(objectA) = 0 /*objectA = Nothing*/ Then
20 Return VarPtr(objectB) = 0 'objectB = Nothing
21 Else
22 Return objectA.Equals( objectB )
23 End If
24 End Function
25
26 ' 参照先が等しいか判断する
27 Static Function ReferenceEquals(objectA As Object, objectB As Object) As Boolean
28 If VarPtr(objectA) = 0 /*objectA = Nothing*/ Then
29 Return VarPtr(objectB) = 0 'objectB = Nothing
30 ElseIf VarPtr(objectB) = 0 /*objectB = Nothing*/ Then
31 Return False
32 Else
33 Return GetPointer(VarPtr(objectA)) = GetPointer(VarPtr(objectA))
34 End If
35 End Function
36
37 ' ハッシュコードを取得する
38 Virtual Function GetHashCode() As Long
39 Return VarPtr( This ) As Long
40 End Function
41
42 ' オブジェクトに関係する文字列を返す
43 Virtual Function ToString() As String
44 Return "Object"
45 End Function
46
47/*
48 Function Operator Downcast() As VoidPtr
49 End Function
50*/
51
52
53 '----------------------------------------------------------------
54 ' 実行時型情報
55 '----------------------------------------------------------------
56
57Private
58 typeInfo As TypeInfo
59
60Public
61 Sub _System_SetType( typeInfo As TypeInfo )
62 If _System_TypeBase.IsReady() = False Then
63 Return
64 End If
65
66 This.typeInfo = typeInfo
67 End Sub
68
69 Function GetType() As TypeInfo
70 Return typeInfo
71 End Function
72
73End Class
74Dim aaa As Long
Note: See TracBrowser for help on using the repository browser.