Книга: 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.

Оглавление книги


Генерация: 1.127. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз