Я не дам вам кодовый ответ, так как в конце концов это задание.
Вещи, которые вы хотите проверить:
Нет - оба объекта равны нулю? Является ли один объект пустым, а другой нет?
object.ReferenceEquals(objA, null)
- это старый предпочтительный способ (поскольку он потенциально не использует переопределенную реализацию Equals
, как ==
. С C # 7+ вы также можете использовать if (objA is null)
.
Теперь вы можете сравнить if (objA == objB)
. Обратите внимание, что именно здесь будет использоваться objA.Equals(objB)
, но поскольку это запрещено, я думаю, мы можем использовать ==
.
Существует также objA.GetHashCode()
, который указывает потенциал для равенства. Я говорю «потенциальный», потому что два разных объекта могут иметь одинаковый хеш-код. Если два объекта равны (и правильно реализованы), то они должны иметь одинаковый хэш-код. Вкратце: вы можете положиться на GetHashCode()
, чтобы указать на возможность равенства, но вам нужно сделать еще одну проверку (2), чтобы быть уверенным.
См. здесь , чтобы узнать больше об отношениях между GetHashCode()
и Equals()
.
И смотрите здесь для получения дополнительной информации о ==
против Equals()