Читаем 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    истинно");

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

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

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных