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
RevLine 
[51]1Class Object
[195]2
[51]3Public
4
[58]5 Sub Object()
6 End Sub
7 Sub ~Object()
8 End Sub
9
[51]10 ' 2つのオブジェクトが等しいかどうかを判断する
[195]11 Virtual Function Equals( object As Object ) As Boolean
12 If This.GetHashCode() = object.GetHashCode() Then
[51]13 Return True
14 Else
15 Return False
16 End If
17 End Function
[195]18 Static Function Equals( objectA As Object, objectB As Object ) As Boolean
[212]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
[51]24 End Function
25
[212]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
[51]37 ' ハッシュコードを取得する
38 Virtual Function GetHashCode() As Long
[70]39 Return VarPtr( This ) As Long
[51]40 End Function
41
42 ' オブジェクトに関係する文字列を返す
43 Virtual Function ToString() As String
44 Return "Object"
45 End Function
[195]46
47/*
48 Function Operator Downcast() As VoidPtr
49 End Function
50*/
[207]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
[51]73End Class
[207]74Dim aaa As Long
Note: See TracBrowser for help on using the repository browser.