"==" Оператор не ведет себя как переопределение 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

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