Читаем C# 4.0 полное руководство - 2011 полностью

В этом методе значение вызывающего объекта сравнивается со значением объекта, определяемого параметромobj.Если значение вызывающего объекта больше, чем у объектаobj,то возвращается положительное значение; если оба значения равны — нулевое значение, а если значение вызывающего объекта меньше, чем у объектаobj,— отрицательное значение.

ИнтерфейсIComparableявляется обобщенным вариантом интерфейсаIComparable.Поэтому в нем определен следующий обобщенный вариант методаCompareTo.

int CompareTo(Тother)

Обобщенный вариант методаCompareTo действует аналогично необобщенному его варианту. В нем значение вызывающего объекта также сравнивается со значением объекта, определяемого параметромother.Если значение вызывающего объекта больше, чем у объектаother,то возвращается положительное значение; если оба значения равны — нулевое значение, а если значение вызывающего объекта меньше, чем у объектаother,— отрицательное значение. Преимущество интерфейсаIComparableзаключается в том, что он'обеспечивает типовую безопасность, поскольку в этом случае тип обрабатываемых данных указывается явным образом, а следовательно, никакого приведения типаobjectсравниваемого объекта к нужному типу не требуется. В качестве примера ниже приведена программа, в которой демонстрируются сортировка и поиск в массиве объектов определяемого пользователем класса.

// Отсортировать массив объектов и осуществить в нем поиск, using System;

class MyClass : IComparable { public int i;

public MyClass(int x) { i = x; }

// Реализовать интерфейс IComparable. public int CompareTo(MyClass v) { return i - v.i;

}

public bool Equals(MyClass v) { return i == v.i;

}

class SortDemo {

static void Main {

MyClass[] nums = new MyClass[5];

nums[0] = new MyClass(5); nums[l] = new MyClass (2); nums[2] = new MyClass (3); nums[3] = new MyClass(4); nums[4] = new MyClass(1);

// Отобразить исходный порядок следования.

Console.Write("Исходный порядок следования: "); foreach(MyClass о in nums)

Console.Write(о.i + " ");

Console.WriteLine ;

// Отсортировать массив.

Array.Sort(nums);

// Отобразить порядок следования после сортировки.

Console.Write("Порядок следования после сортировки: "); foreach(MyClass о in nums)

Console.Write(о.i + " ");

Console.WriteLine ;

// Найти объект MyClass (2).

MyClass x = new MyClass (2);

int idx = Array.BinarySearch(nums, x);

Console.WriteLine("Индекс элемента массива с объектом MyClass(2): " + idx) ;

}

}

При выполнении этой программы получается следующий результат.

Перейти на страницу:

Похожие книги

Access 2002: Самоучитель
Access 2002: Самоучитель

В книге рассматривается широкий круг вопросов, связанных с использованием программной среды Access 2002, которая является составной частью пакета Office 2002 и предназначена для создания банка данных в самых различных предметных областях.Подробно описывается методика проектирования объектов базы данных (таблицы, формы, отчеты, страницы доступа к данным, запросы, модули).Детально обсуждаются вопросы создания интегрированной базы данных в единой среде Access 2002: формирование БД с нуля, конвертирование в программную среду баз данных, созданных в ином программном окружении – Clarion, FoxPro.Особое внимание уделяется формированию разнообразных запросов к интегрированной базе данных Access 2002 с использованием языков программирования SQL, VBA и макросов.Приводятся общие сведения о возможностях языка обмена данными между различными компьютерами и приложениями (XML). Описываются возможности использования гиперссылок, связывающих базу данных с другими программными продуктами. Объясняется, как можно работать с базой данных Access 2002 без установки ее на компьютер, используя технологию ODBC (Open Data Base Connectivity). В приложениях приводятся количественные параметры Access 2002 и связанная с этой СУБД терминология.Предлагаемая книга будет полезна специалистам, занимающимся практической разработкой банков данных и приложений на их основе, а также студентам вузов, изучающим информатику.

Павел Юрьевич Дубнов

Программирование, программы, базы данных / ОС и Сети / Книги по IT