Герберт Шилдт - C# 4.0: полное руководство

Тут можно читать онлайн Герберт Шилдт - C# 4.0: полное руководство - бесплатно ознакомительный отрывок. Жанр: comp-programming, издательство ООО И.Д. Вильямс, год 2011. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    C# 4.0: полное руководство
  • Автор:
  • Жанр:
  • Издательство:
    ООО И.Д. Вильямс
  • Год:
    2011
  • Город:
    Москва -- Киев
  • ISBN:
    978-5-8459-1684-6
  • Рейтинг:
    3.93/5. Голосов: 141
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Герберт Шилдт - C# 4.0: полное руководство краткое содержание

C# 4.0: полное руководство - описание и краткое содержание, автор Герберт Шилдт, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.


Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

C# 4.0: полное руководство - читать онлайн бесплатно ознакомительный отрывок

C# 4.0: полное руководство - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Герберт Шилдт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

// Перегрузить унарный оператор ++.

public static ThreeD operator ++(ThreeD op)

{

ThreeD result = new ThreeD();

//возвратить результат инкрементирования

result.x = x + 1;

result.y = y + 1;

result.z = z + 1;

return result;

}

Ниже приведен расширенный вариант предыдущего примера программы, в котором демонстрируется перегрузка унарных операторов - и ++.

// Пример перегрузки бинарных и унарных операторов,

using System;

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

class ThreeD {

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

public ThreeD() { x = y = z = 0; }

public ThreeD(int i, int j, int k) {

x = i;

y = j;

z = k;

}

// Перегрузить бинарный оператор +.

public static ThreeD operator +(ThreeD op1, ThreeD op2) {

ThreeD result = new ThreeD();

/* Сложить координаты двух точек и возвратить результат. */

result.x = op1.x + op2.x;

result.y = op1.y + op2.y;

result.z = op1.z + op2.z;

return result;

}

// Перегрузить бинарный оператор -.

public static ThreeD operator -(ThreeD op1, ThreeD op2) {

ThreeD result = new ThreeD();

/* Обратить внимание на порядок следования операндов: op1 — левый операнд, ор2 — правый операнд. */

result.x = op1.x - op2.x;

result.y = op1.y - op2.y;

result.z = op1.z - op2.z;

return result;

}

// Перегрузить унарный оператор -.

public static ThreeD operator -(ThreeD op) {

ThreeD result = new ThreeD();

result.x = -op.x;

result.y = -op.y;

result.z = -op.z;

return result;

}

// Перегрузить унарный оператор ++.

public static ThreeD operator ++(ThreeD op) {

ThreeD result = new ThreeD();

// Возвратить результат инкрементирования,

result.x = op.x + 1;

result.y = op.y + 1;

result.z = op.z + 1;

return result;

}

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

public void Show() {

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

}

}

class ThreeDDemo {

static void Main() {

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

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

ThreeD c = new ThreeD();

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

a.Show();

Console.WriteLine();

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

b.Show();

Console.WriteLine();

c = a + b; // сложить координаты точек а и b

Console.Write("Результат сложения a + b: ");

c.Show();

Console.WriteLine();

c = a + b + c; // сложить координаты точек a, b и с

Console.Write("Результат сложения a + b + с: ");

c.Show();

Console.WriteLine();

c = c - a; // вычесть координаты точки а

Console.Write("Результат вычитания с - а: ");

c.Show();

Console.WriteLine();

c = c - b; // вычесть координаты точки b

Console.Write("Результат вычитания с - b: ");

c.Show();

Console.WriteLine();

c = -a; // присвоить точке с отрицательные координаты точки

Console.Write("Результат присваивания -а: ");

c.Show();

Console.WriteLine();

c = a++; // присвоить точке с координаты точки а,

// а затем инкрементировать их

Console.WriteLine("Если с = а++");

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

c.Show();

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

a.Show();

// Установить исходные координаты (1,2,3) точки а

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

Console.Write("\nУстановка исходных координат точки а: ");

a.Show();

c = ++a; // инкрементировать координаты точки а,

// а затем присвоить их точке с

Console.WriteLine("\nЕсли с = ++а");

Console.Write("то координаты точки с равны "); c.Show();

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

}

}

Вот к какому результату приводит выполнение данной программы.

Координаты точки а: 1, 2, 3

Координаты точки b: 10, 10, 10

Результат сложения а + b: 11, 12, 13

Результат сложения а + b + с: 22, 24, 26

Результат вычитания с - а: 21, 22, 23

Результат вычитания с - b: 11, 12, 13

Результат присваивания -а: -1, -2, -3

Если с = а++

то координаты точки с равны 1, 2, 3

а координаты точки а равны 2, 3, 4

Установка исходных координат точки а: 1, 2, 3

Если с = ++а

то координаты точки с равны 2, 3, 4

а координаты точки а равны 2, 3, 4

Выполнение операций со встроенными в C# типами данных

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

// Перегрузить бинарный оператор + для сложения объекта

// типа ThreeD и целого значения типа int.

public static ThreeD operator +(ThreeD op1, int op2)

{

ThreeD result = new ThreeD();

result.x = op1.x + op2;

result.у = op1.y + op2;

result.z = op1.z + op2;

return result;

}

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

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Герберт Шилдт читать все книги автора по порядку

Герберт Шилдт - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




C# 4.0: полное руководство отзывы


Отзывы читателей о книге C# 4.0: полное руководство, автор: Герберт Шилдт. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x