[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
的实现已更改为在对返回 CompareTo
的每个对象进行排序时保持顺序。现在,请暂且不考虑这个测试的明显疯狂之处。我知道依赖这种行为是疯狂的。
这难道不是一项破坏性的变化吗?它没有列在关于 .NET 4.0 和 4.5 兼容性的此页面中。
这是有原因的吗?我有什么遗漏吗?是否有另一页显示实际的破坏性变化?我应该坐下来停止恐慌吗?
var li = new List<string> { "first", "second", }; li.Sort((x, y) => 0);
。 - Jeppe Stig Nielsen