source: trunk/ab5.0/ablib/src/Classes/System/Object.ab

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

New式でステップインしたときにステップ数を減らすためReferenceEqualsの修正

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