Поведение списка <T>. Сортировка в .NET 4.5 изменилась с .NET 4.0?

У меня есть следующий тест внутри проекта, ориентированного на .NET 4.0:

[TestFixture]
public class Donkey
{
    [Test]
    public void TestListSorting()
    {
        var expected = new[]
                    {
                                MockRepository.GenerateStub<IComparable>(),
                                MockRepository.GenerateStub<IComparable>()
                    };

        var sorted = new List<IComparable>(expected);

        CollectionAssert.AreEqual(expected, sorted);
        sorted.Sort();
        CollectionAssert.AreEqual(expected, sorted);

    }
}

Если я запускаю его на компьютере, на котором установлен только .NET 4.0, он не работает. Если я запускаю его на компьютере с установленным только .NET 4.5, он проходит.

Я предполагаю, что в .NET 4.5 реализацияSort был изменен для поддержания порядка при сортировке списка объектов, каждый из которых возвращает0 отCompareTo.

Now, put aside the obvious insanity of this test. I know it's crazy to rely on this kind of behaviour.

Surely это серьезное изменение? Это не указано наэта страница о совместимости .NET 4.0 и 4.5.

Для этого есть причина? Я что-то пропустил? Есть ли другая страница, которая показывает реальные изменения? Должен ли я просто сесть и перестать паниковать?

Ответы на вопрос(6)

Ваш ответ на вопрос