Skip to content

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

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Завантаження...

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

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


Зазвичай (якщо не йдеться про рядки) Equals порівнює значення, а == порівнює об’єктні посилання. Якщо два об’єкти, що порівнюються, посилаються на один і той самий екземпляр об’єкта, то обидва повернуть true, але якщо один із них має однаковий вміст і отриманий з іншого джерела (є окремим екземпляром із тими самими даними), то тільки Equals поверне true (якщо він перевизначений).

Розглянемо приклад для звичайних рядків:

string – це особливий випадок, оскільки він перевизначає оператор ==, тож під час роботи тільки з рядковими посиланнями (а не з об’єктними) порівнюються тільки значення, навіть якщо вони є окремими екземплярами.

При роботі з об’єктами складових типів, метод Equals можна перевизначити для зазначення потрібної логіки:

 

Published inВідповіді на запитання C#
Підписатися
Сповістити про
guest
0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x