Сравните два одинаковых объекта, чтобы проверить равенство - PullRequest
0 голосов
/ 17 января 2012

Я пытаюсь сравнить побитовый объект-клон с его родителем, чтобы проверить наличие изменений, используя:

If Not objCP.Equals(objCPClone) Then
    'do something
End If

и он всегда сравнивается как не равный даже сразу после создания клона.

Как их сравнить с проверкой на наличие изменений?

Ответы [ 2 ]

2 голосов
/ 17 января 2012

Переопределите метод EqualsGetHashCode по пути), чтобы фактически проверить на равенство всех необходимых полей или свойств.Реализация по умолчанию (унаследованная от Object) просто проверяет, являются ли ссылки одинаковыми (то есть указывают ли они на один и тот же объект).

0 голосов
/ 17 января 2012

Как сказал Массимилиано Пелусо, вы должны переопределить метод Equal вашего класса, иначе равенство будет основано на правилах CLR, и в этом случае клон не может быть равен его оригиналу (это зависит от того, работаете ли вы с типами значений или например, ссылочные типы или типы атрибутов, которые есть у вашего класса).

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