Tag: 等级

惊人的元组(in)平等

直到今天,我对.NET Tuple类的理解是他们将Equals()的实现委托给他们的内容,允许我将它们等同并“按值”进行比较。 然后这个测试出现了,让我变得愚蠢: [TestMethod] public void EquateTwoTuplesWithSameContent() { var t1 = Tuple.Create(“S”); var t2 = Tuple.Create((object)t1.Item1); Assert.IsTrue(t1.Equals(t2)); // Boom! } 阅读MSDN文档和各种博客给我留下了更多问题。 从我收集的内容来看,似乎Tuple和Tuple总是被认为是不相等的,无论两个实例都可以包装同一个对象(盒装或类型转换 – 它都是相同的)。 这真的是Tuples应该如何表现吗? 结构兼容性实际上是对平等的另一个限制,而不是放松,因为我一直在解释它吗? 如果是这样,BCL中还有什么可以用来满足上述unit testing的期望吗? 先感谢您!