Namespace System Class Object Public Sub Object() End Sub Sub ~Object() End Sub ' 2つのオブジェクトが等しいかどうかを判断する Virtual Function Equals( object As Object ) As Boolean If ObjPtr(This) = ObjPtr(object) Then ' If This.GetHashCode() = object.GetHashCode() Then Return True Else Return False End If End Function Static Function Equals( objectA As Object, objectB As Object ) As Boolean If ObjPtr(objectA) = NULL /*objectA = Nothing*/ Then Return ObjPtr(objectB) = NULL 'objectB = Nothing Else Return objectA.Equals(objectB) End If End Function ' 参照先が等しいか判断する Static Function ReferenceEquals(objectA As Object, objectB As Object) As Boolean If ObjPtr( objectA ) = ObjPtr( objectB) Then Return True Else Return False End If End Function ' ハッシュコードを取得する Virtual Function GetHashCode() As Long Return ObjPtr( This ) As Long End Function ' オブジェクトに関係する文字列を返す Virtual Function ToString() As String Return GetType().Name End Function /* Function Operator Downcast() As VoidPtr End Function */ '---------------------------------------------------------------- ' 実行時型情報 '---------------------------------------------------------------- Private typeInfo As TypeInfo Public Sub _System_SetType( typeInfo As TypeInfo ) If ActiveBasic.Core._System_TypeBase.IsReady() = False Then Return End If This.typeInfo = typeInfo End Sub Virtual Function GetType() As TypeInfo Return typeInfo End Function End Class End Namespace