Какой метод VB6 позволяет двум пользовательским объектам того же типа (определенный в модуле класса) сравниваться друг с другом? Я думаю, что существует эквивалент compareTo методу Java, но я не могу найти его нигде.
Для тех, кто задается тем же вопросом:
После долгих поисков кажется, что в VB6 нет встроенных методов compareTo
или equals
, как в Java.
Я забыл, что в Java, compareTo
определяется в java.lang.Comparable
интерфейсе. Поскольку в VB6 интерфейсы так сильно сломаны, даже если бы вы написали свой собственный интерфейс Comparable
, вам пришлось бы вызывать метод Comparable_compareTo
вашего объекта, если он не объявлен как Comparable
, что бессмысленно.
Итог: если вам нужны методы compareTo
или equals
в ваших классах VB6, просто поместите их туда.
Если под "сравнить" вы подразумеваете "одинаковый ли у них тип?", вы можете использовать функцию TypeName:
If (object1 <> Nothing) and (object2 <> Nothing) then
If (TypeName(object1) = TypeName(object2)) Then
Debug.Print "object types are the same"
Else
Debug.Print "object types are NOT the same"
End If
End If
Если под "сравнить" вы подразумеваете "ссылаются ли они на один и тот же объект в памяти? ", вы можете использовать оператор Is:
If (object1 Is object2) Then
Debug.Print "objects references are the same"
Else
Debug.Print "objects references are NOT the same"
End If