Comportamiento de la lista <T>. ¿El orden en .NET 4.5 cambió de .NET 4.0?
Tengo la siguiente prueba dentro de un proyecto dirigido a .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);
}
}
Si lo ejecuto en una máquina con solo .NET 4.0 instalado, falla. Si lo ejecuto en una máquina con solo .NET 4.5 instalado, se pasa.
Estoy asumiendo que en .NET 4.5 la implementación deSort
se ha cambiado para mantener el orden al ordenar una lista de objetos que cada uno devuelve0
desdeCompareTo
.
Ahora, deja a un lado la locura obvia de esta prueba. Sé que es una locura confiar en este tipo de comportamiento.
Seguramente Este es un cambio de ruptura? No está listado enesta página Sobre compatibilidad entre .NET 4.0 y 4.5.
¿Hay alguna razón para esto? ¿Me estoy perdiendo de algo? ¿Hay otra página que muestra los cambios de ruptura reales? ¿Debo sentarme y dejar de entrar en pánico?