Сравнение объекта VB6

Какой метод VB6 позволяет двум пользовательским объектам того же типа (определенный в модуле класса) сравниваться друг с другом? Я думаю, что существует эквивалент compareTo методу Java, но я не могу найти его нигде.

5
задан derekerdmann 30 June 2010 в 13:45
поделиться

2 ответа

Для тех, кто задается тем же вопросом:

После долгих поисков кажется, что в VB6 нет встроенных методов compareTo или equals, как в Java.

Я забыл, что в Java, compareTo определяется в java.lang.Comparable интерфейсе. Поскольку в VB6 интерфейсы так сильно сломаны, даже если бы вы написали свой собственный интерфейс Comparable, вам пришлось бы вызывать метод Comparable_compareTo вашего объекта, если он не объявлен как Comparable, что бессмысленно.

Итог: если вам нужны методы compareTo или equals в ваших классах VB6, просто поместите их туда.

1
ответ дан 14 December 2019 в 04:29
поделиться

Если под "сравнить" вы подразумеваете "одинаковый ли у них тип?", вы можете использовать функцию 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
7
ответ дан 14 December 2019 в 04:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: