Перейти к содержанию

Разница между оператором == и методом Equals()

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

[ Полезный рекламный блок ]

Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.


Обычно (если речь не идет о строках) Equals сравнивает значения, а == сравнивает объектные ссылки. Если два сравниваемых объекта ссылаются на один и тот же экземпляр объекта, то оба вернут true, но если один из них имеет одинаковое содержимое и получен из другого источника (является отдельным экземпляром с теми же данными), то только Equals вернет true (если он переопределен).

Рассмотрим пример для обычных строк:

string — это особый случай, поскольку он переопределяет оператор ==, так что при работе только со строковыми ссылками (а не с объектными) сравниваются только значения, даже если они являются отдельными экземплярами.

При работе с объектами составных типов, метод Equals можно переопределить для указания нужной логики:

 

Опубликовано в рубрикеОтветы на Вопросы C#
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x