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

Как вам должно быть уже известно, в C# предусмотрены следующие логические операторы: &, |, !, & & и | |. Из них перегрузке, безусловно, подлежат только операторы &, [ и !. Тем не менее, соблюдая определенные правила, можно извлечь также пользу из укороченных логических операторов & & и | |. Все эти возможности рассматриваются ниже.

Простой способ перегрузки логических операторов

Рассмотрим сначала простейший случай. Если не пользоваться укороченными логическими операторами, то перегрузку операторов & и | можно выполнять совершенно естественным путем, получая в каждом случае результат типа bool. Аналогичный результат, как правило, дает и перегружаемый оператор !.

Ниже приведен пример программы, в которой демонстрируется перегрузка логических операторов !, & и | для объектов типаThreeD.Как и в предыдущем примере, объект типаThreeDсчитается истинным, если хотя бы одна из его координат не равна нулю. Если же все три координаты объекта равны нулю, то он считается ложным.

// Простой способ перегрузки логических операторов // !,    |    и    & для объектов класса ThreeD.

using System;

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

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

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

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

// Перегрузить логический оператор |.

public static bool operator |(ThreeD ‘opl, ThreeD op2)

{

if( ((opl.x != 0) M (opl.у != 0) M (opl.z != 0)) I ( (op2.-x!= 0)    || (op2. у != 0)    ||    (op2.z    !=    0))    )

return true; else

return false;

}

// Перегрузить логический оператор &.

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

{

if ( ((opl.x != 0) && (opl.у != 0) && (opl.z != 0)) & ((op2.x != 0)    && (op2.y != 0)    &&    (op2.z    !=    0))    )

return true; else

return false;

}

11Перегрузить логический оператор !. public static bool operator ! (ThreeD op)

{

if ( (op.x != 0) M (op.у != 0)    ||    (op.z    !=    0))

return false; else return true;

}

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

{

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

}

}

class TrueFalseDemo { static void Main {

ThreeD a = new ThreeD(5, 6, 7);

ThreeD b = new ThreeD(10, 10, 10); ThreeD с = new ThreeD (0, 0, 0);

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

a.Show    ;

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

b.Show;

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

c.Show;

Console.WriteLine;

if(!a) Console.WriteLine("Точка а ложна.") if(!b) Console.WriteLine("Точка b ложна.") if(!c) Console.WriteLine("Точка с ложна.")

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

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

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