Почему анонимные типы не перегружают == и! = Операторы (но записи делают)?C#

Место общения программистов C#
Ответить
Anonymous
 Почему анонимные типы не перегружают == и! = Операторы (но записи делают)?

Сообщение Anonymous »

Методы equals и gethashcode на анонимных типах переопределены, чтобы они работали таким образом, что два экземпляра одного и того же анонимного типа считаются равными, только если все их свойства одинаковы - то есть в равенстве стоимости, а не справочника. - Вместо этого они были оставлены для проверки на справочное равенство.
Новые типы записей в C#, с другой стороны, перегружают операторы == и! Semantics.
Интересно, какая причина могла бы заключить решение о том, чтобы не перегружать операторов == и! Семантика значения.
[*] Иногда он синхронизируется с равными , иногда нет.
Иногда он всегда возвращает одно и то же значение независимо от того, какой тип объект был поднят, иногда нет. Оператор также), это похоже на == не служит реальной цели на языке и на самом деле просто служит запутанным и приводит к ненужным ошибкам. Я думаю, что было бы лучше, если бы == вообще не может быть перегружена вообще, и это всегда просто проверяло операнд на стороне левой стороны и выполнял свой метод равных с помощью операнда с правой стороны, переданным в качестве аргумента. .

Подробнее здесь: https://stackoverflow.com/questions/796 ... records-do
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»