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


Авторские права

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

Здесь можно скачать бесплатно "Герберт Шилдт - C# 4.0: полное руководство" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование, издательство ООО "И.Д. Вильямс", год 2011. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Герберт Шилдт - C# 4.0: полное руководство
Рейтинг:
Название:
C# 4.0: полное руководство
Издательство:
ООО "И.Д. Вильямс"
Год:
2011
ISBN:
978-5-8459-1684-6
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "C# 4.0: полное руководство"

Описание и краткое содержание "C# 4.0: полное руководство" читать бесплатно онлайн.



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


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






// Перегрузить оператор унарного минуса,

public static ThreeD operator -(ThreeD op)

{

  ThreeD result = new ThreeD();

  result.x = -op.x;

  result.у = -op.у;

  result.z = -op.z;

  return result;

}


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


а = -b


является отрицательное значение операнда b, но сам операнд b не меняется.

В C# перегрузка операторов ++ и -- осуществляется довольно просто. Для этого достаточно возвратить инкрементированное или декрементированное значение, но не изменять вызывающий объект. А все остальное возьмет на себя компилятор С#, различая префиксные и постфиксные формы этих операторов. В качестве примера ниже приведен операторный метод operator++() для класса ThreeD.


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

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. Подобная операция пригодилась бы для переноса осей координат. Но для ее выполнения придется перегрузить оператор + еще раз, как показано ниже.


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


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "C# 4.0: полное руководство"

Книги похожие на "C# 4.0: полное руководство" читать онлайн или скачать бесплатно полные версии.


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

Все книги автора Герберт Шилдт

Герберт Шилдт - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

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

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

  1. BOT20.02.2021, 13:02
    сКОРО КУПЛЮ
А что Вы думаете о книге? Оставьте Ваш отзыв.