VB6 Сравнение объектов - PullRequest
5 голосов
/ 30 июня 2010

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

Ответы [ 2 ]

7 голосов
/ 30 июня 2010

Если под «сравнить» вы подразумеваете «они одного типа?», Вы можете воспользоваться функцией 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
1 голос
/ 01 июля 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...