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

Результат сложения а+Ь: 11, 12, 13 Результат присваивания i = а: 6

Результат вычисления выражения а * 2 - Ь: -988

Как следует из приведенного выше примера программы, когда объект типаThreeDиспользуется в таком целочисленном выражении, какi=а,происходит его преобразование. В этом конкретном случае преобразование приводит к возврату целого значения 6, которое является произведением координат точкиа,хранящихся в объекте того же названия. Но если для вычисления выражения преобразование в типintне требуется, то оператор преобразования не вызывается. Именно поэтому операторный методoperator int невызывается при вычислении выраженияс = а + Ь.

Но для различных целей можно создать разные операторы преобразования. Так, для преобразования объекта типаThreeDв типdoubleможно было бы определить второй оператор преобразования. При этом каждый вид преобразования выполнялся бы автоматически и независимо от другого.

Оператор неявного преобразования применяется автоматически в следующих случаях: когда в выражении требуется преобразование типов; методу передается объект; осуществляется присваивание и производится явное приведение к целевому типу. С другой стороны, можно создать оператор явного преобразования, вызываемый только тогда, когда производится явное приведение типов. В таком случае оператор явного преобразования не вызывается автоматически. В качестве примера ниже приведен вариант предыдущей программы, переделанный для демонстрации явного преобразования в типint.

// Применить явное преобразование, 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 ThreeD operator +(ThreeD opl, ThreeD op2)

{

ThreeD result = new ThreeD;

result.x = opl.x + op2.x; result.у = opl.у + op2.y; result.z = opl.z + op2.z;

return result;

}

// Выполнить на этот раз явное преобразование типов, public static explicit operator int(ThreeD opl)

{

return opl.x * opl.у * opl.z;

}

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

{

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

}

}

class ThreeDDemo { static void Main {

ThreeD a = new ThreeD(1, 2, 3) ;

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

ThreeD с = new ThreeD; int i;

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

a.Show;

Console.WriteLine ;

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

b.Show    ;

Console.WriteLine ;

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

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

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

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

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

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

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

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

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