"==" Оператор не ведет себя как переопределение Equals(), созданное компилятором, для анонимного типаC#

Место общения программистов C#
Ответить
Anonymous
 "==" Оператор не ведет себя как переопределение Equals(), созданное компилятором, для анонимного типа

Сообщение Anonymous »

Согласно MSDN:


Поскольку методы Equals и GetHashCode
для анонимных типов определены
в С точки зрения Equals и GetHashcode
свойств, два экземпляра
одного и того же анонимного типа равны только
если все их свойства равны.


Однако следующий код демонстрирует, что сгенерированная компилятором реализация Equals() ведет себя не так, как ожидалось.:

DateTime start = new DateTime(2009,1,1);
DateTime end = new DateTime(2010, 12,31);

// months since year 0
int startMonth = start.Date.Year * 12 + start.Date.Month - 1;
int endMonth = end.Date.Year * 12 + end.Date.Month -1 ;

// iterate through month-year pairs
for (int i = startMonth; i

Подробнее здесь: https://stackoverflow.com/questions/230 ... -for-anony
Ответить

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

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

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

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

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