Почему всегда используйте icomparable< T> В C# для сравнения объектов ?
Я очень новичок в языке C#. C# предоставляет два похожих интерфейса с именем IComparable Интерфейс и Интерфейс IComparer для сравнения.
Работая над ним, я нашел еще два варианта использования IComparable<t> В C#.
1-сортировка пользовательских коллекций объектов
2-перегрузка операторов типа <, >, <=, >= и т. д.
взгляните на код, в котором я использую IComparable<point> для перегрузки операторов < и >.
public int CompareTo(Point other) { if (this.X > other.X && this.Y > other.Y) { return 1; } if (this.X < other.X && this.Y < other.Y) { return -1; } else { return 0; } }
Это класс Point, который реализует этот интерфейс.
class Point : IComparable<Point>
И в последнем здесь два метода, которые перегружают операторы < и >.
public static bool operator < (Point p1 , Point p2) { return (p1.CompareTo(p2) < 0); } public static bool operator >(Point p1, Point p2) { return (p1.CompareTo(p2) > 0); }
Помимо этих длинных строк кода и текста, мой вопрос очень прост. Нужно ли всегда использовать этот интерфейс для сортировки объектов и перегрузки таких операторов, которые использует для сравнения и т. д.
Что я уже пробовал:
Я искал в интернете и на многих разных сайтах, все обсуждают
1-Что такое IComparable< t> В C#
ОПЕРАЦИОННАЯ
2-Как использовать IComparable< t> В C#
Никто не обсуждает
> зачем это нужно в сценариях реального времени? тем не менее, мы должны написать дополнительную строку кода для реализации этого интерфейса, а не использовать наши собственные методы, которые просто написать для небольших классов.
CHill60
Представьте, что у вас есть класс [автомобилей] и вы хотите сравнить, какие автомобили "лучше". Делать что-то вроде If [Rolls Royce] > [Austin Mini] имеет смысл только в том случае, если вы определили, что именно >
средства в терминах [автомобиля]