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

Операторы отношения, например == и <, могут также перегружаться, причем очень просто. Как правило, перегруженный оператор отношения возвращает логическое значениеtrueиfalse.Это вполне соответствует правилам обычного применения подобных операторов и дает возможность использовать их перегружаемые разновидности в условных выражениях. Если же возвращается результат другого типа, то тем самым сильно ограничивается применимость операторов отношения.

Ниже приведен очередной вариант классаThreeD,в котором перегружаются операторы < и >. В данном примере эти операторы служат для сравнения объектовThreeD,исходя из их расстояния до начала координат. Один объект считается больше другого, если он находится дальше от начала координат. А кроме того, один объект считается меньше другого, если он находится ближе к началу координат. Такой вариант реализации позволяет, в частности, определить, какая из двух заданных точек находится на большей сфере. Если же ни один из операторов не возвращает логическое значениеtrue,то обе точки находятся на одной и той же сфере. Разумеется, возможны и другие алгоритмы упорядочения.

I/Перегрузить операторы < и >. using System;

//Класс для хранения трехмерных координат, class ThreeD {

int x, у, z; // трехмерные координаты

public ThreeD    {    x    = у = z = 0; }

public ThreeD(int i, int j, int k) { x = i; у = j; z = k; }

// Перегрузить оператор <.

public static bool operator < (ThreeD opl, ThreeD op2)

{

if(Math.Sqrt(opl.x    *    opl.x    +    opl.у    *    opl.у    +    opl.z    *    opl.z) <

Math.Sqrt(op2.x    *    op2.x    +    op2.у    *    op2.y    +    op2.z    *    op2.z))

return true; else

return false;

}

// Перегрузить оператор >.

public static bool operator >(ThreeD opl, ThreeD op2)

{

if(Math.Sqrt(opl.x    *    opl.x    +    opl.у    *    opl.у    +    opl.z    *    opl.z) >

Math.Sqrt(op2.x    *    op2.x    +    op2.у    *    op2.y    +    op2.z    *    op2.z))

return true; else

return false;

}

// Вывести координаты X, Y, Z. public void Show

{

Console.WriteLine(x + ”, " + у + ", " + z) ;

}

}

class ThreeDDemo { static void Main {

Console.Write("Координаты точки a: ")

a.Show;

Console.Write("Координаты точки b: ")

b.Show;

Console.Write("Координаты точки с: ")

c.Show;

Console.Write("Координаты точки d: ")

d.    Show;

Console.WriteLine;

if(а >    с)    Console.WriteLine("а    >    с    истинно");

if(а <    с)    Console.WriteLine("а    <    с    истинно");

if(а >    b)    Console.WriteLine("а    >    b    истинно");

if (а <    b)-Console.WriteLine("а    <    b    истинно");

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

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

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