Рассмотрим следующий фрагмент кода:
var tuple1 = (7, "foo");
var tuple2 = (7, "foo");
var tuple3 = (42, "bar");
Assert.That(tuple1.Equals(tuple2), Is.True); //This passes
Assert.That(tuple1.Equals(tuple3), Is.False); //This passes
Assert.That(tuple1 == tuple2, Is.True); //This does not compile
Первые два утверждения проходят. Третий не компилируется.
Почему ValueTuple реализует собственный метод Equals, но не реализует оператор double equals?