У меня есть класс. То, что этот класс предназначен для представления, таков, что мы можем говорить о том, что такие вещи равны друг другу, и мы можем также разработать схему ранжирования их для целей сравнения.
Однако бывает так, что редко бывает, что нужно оценивать эти вещи, но часто нужно проверить, равны ли две такие вещи.
Итак, я могу реализовать как IEquatable
для моего класса, так и IComparable
. Хотя IComparable
предоставляет некоторые дополнительные функции, маловероятно, что кто-то будет заботиться об этой дополнительной функциональности. Ни один из них, по-видимому, не дает явного преимущества, логически или функционально.
Какой интерфейс мне следует реализовать, IEquatable
, IComparable
или и то, и другое? Зачем? (Я просто задаюсь вопросом об изменениях в рамках всего интерфейса или интерфейса)
Этот вопрос похож, но ответы только указывают на очевидное, что не помогает мне.
В случае, если вам интересно, класс должен представлять нуклеотид. Нуклеотиды можно легко отождествлять, но их также можно сравнить (например, в алфавитном порядке).