Книга: C# 4.0: полное руководство
Интерфейсы IComparable и IComparable
Интерфейсы IComparable и IComparable<T>
Во многих классах приходится реализовывать интерфейс IComparable
или IComparable<T>
, поскольку он позволяет сравнивать один объект с другим, используя различные методы, определенные в среде .NET Framework. Интерфейсы IComparable
и IComparable<T>
были представлены в главе 18, где они использовались в примерах программ для сравнения двух объектов, определяемых параметрами обобщенного типа. Кроме того, они упоминались при рассмотрении класса Array
ранее в этой главе. Но поскольку эти интерфейсы имеют особое значение и применяются во многих случаях, то ниже приводится их краткое описание.
Интерфейс IComparable
реализуется чрезвычайно просто, потому что он состоит всего лишь из одного метода.
int CompareTo(object obj)
В этом методе значение вызывающего объекта сравнивается со значением объекта, определяемого параметром obj. Если значение вызывающего объекта больше, чем у объекта obj, то возвращается положительное значение; если оба значения равны — нулевое значение, а если значение вызывающего объекта меньше, чем у объекта obj, — отрицательное значение.
Обобщенный вариант интерфейса IComparable
объявляется следующим образом.
public interface IComparable<T>
В данном варианте тип сравниваемых данных передается параметру Т в качестве аргумента типа. В силу этого объявление метода CompareTo()
претерпевает изменения и выглядит так, как показано ниже.
int CompareTo(Т other)
В этом объявлении тип данных, которыми оперирует метод CompareTo()
, может быть указан явным образом. Следовательно, интерфейс IComparable<T>
обеспечивает типовую безопасность. Именно по этой причине он теперь считается более предпочтительным в программировании на С#, чем интерфейс IComparable
.
- Члены пространства имен System
- Класс Math
- Структуры .NET, соответствующие встроенным типам значений
- Класс Array
- Класс BitConverter
- Генерирование случайных чисел средствами класса Random
- Управление памятью и класс GC
- Класс object
- Класс Tuple
- Интерфейсы IComparable и IComparable
- Интерфейс IEquatable
- Интерфейс IConvertible
- Интерфейс ICloneable
- Интерфейсы IFormatProvider и IFormattable
- Интерфейсы IObservable и IObserver
- Интерфейсы IFormatProvider и IFormattable
- Интерфейсы IObservable и IObserver
- 5.21 IP-адреса, интерфейсы и множественное пребывание
- Множественные интерфейсы и имена методов
- 2.2 Интерфейсы IDE, EIDE и АТА
- 7.5 Программные интерфейсы приложений для адаптеров шины
- Абстрактные базы как двоичные интерфейсы
- Интерфейсы накопителей на жестких магнитных дисках
- Глава 10 Интерфейсы компьютерных сетей
- Интерфейсы
- 8.4.4. Цифровые интерфейсы P&D, DVI и DFP
- 8.3.2. Последовательные интерфейсы