Помощники реализации метода Equals (C #)
Каждый раз, когда я пишу некоторый класс данных, я обычно трачу столько времени на написание реализации IEquatable.
Последний класс, который я написал, был примерно таким:
public class Polygon
{
public Point[] Vertices { get; set; }
}
Реализация IEquatable была исчерпывающей. Конечно, C # 3.0 / LINQ очень помогает, но вершины могут быть смещены и / или в обратном порядке, что значительно усложняет метод Equals. После многих модульных тестов и соответствующей реализации я сдался и изменил свое приложение так, чтобы оно принимало только треугольники. Для реализации IEquatable требовалось только 11 модульных тестов, чтобы полностью покрыть их.
Есть какой-либо инструмент или метод, который помогает реализовать Equals и GetHashCode?