» » » Герберт Шилдт - 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#.Введите сюда краткую аннотацию






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

    c.Show();

  }

}


Выполнение этого кода дает следующий результат.


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


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


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


Результат сложения b + 10: 20, 20, 20


Результат сложения 15 + b: 25, 25, 25


Перегрузка операторов отношения

Операторы отношения, например == и <, могут также перегружаться, причем очень просто. Как правило, перегруженный оператор отношения возвращает логическое значение true и false. Это вполне соответствует правилам обычного применения подобных операторов и дает возможность использовать их перегружаемые разновидности в условных выражениях. Если же возвращается результат другого типа, то тем самым сильно ограничивается применимость операторов отношения.

Ниже приведен очередной вариант класса ThreeD, в котором перегружаются операторы < и >. В данном примере эти операторы служат для сравнения объектов ThreeD, исходя из их расстояния до начала координат. Один объект считается больше другого, если он находится дальше от начала координат. А кроме того, один объект считается меньше другого, если он находится ближе к началу координат. Такой вариант реализации позволяет, в частности, определить, какая из двух заданных точек находится на большей сфере. Если же ни один из операторов не возвращает логическое значение true, то обе точки находятся на одной и той же сфере. Разумеется, возможны и другие алгоритмы упорядочения.


// Перегрузить операторы < и >.

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 bool operator <(ThreeD op1, ThreeD op2) {

    if (Math.Sqrt(op1.x * op1.x + op1.y * op1.y + op1.z * op1.z) <

       Math.Sqrt(op2.x * op2.x + op2.y * op2.y + op2.z * op2.z))

      return true;

    else

      return false;

  }


  // Перегрузить оператор >.

  public static bool operator >(ThreeD op1, ThreeD op2) {

    if (Math.Sqrt(op1.x * op1.x + op1.y * op1.y + op1.z * op1.z) >

       Math.Sqrt(op2.x * op2.x + op2.y * op2.y + op2.z * op2.z))

      return true;

    else

      return false;

  }


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

  public void Show() {

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

  }

}


class ThreeDDemo {

  static void Main() {

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

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

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

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

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

    a.Show();

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

    b.Show();

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

    c.Show();

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

    d.Show();

    Console.WriteLine();


    if (a > c) Console.WriteLine("а > с истинно");

    if (a < c) Console.WriteLine("а < с истинно");

    if (a > b) Console.WriteLine("а > b истинно");

    if (a < b) Console.WriteLine("а < b истинно");


    if (a > d) Console.WriteLine("а > d истинно");

    else if (a < d) Console.WriteLine("a < d истинно");

    else Console.WriteLine("Точки a и d находятся на одном расстоянии " +

                 "от начала отсчета");

  }

}


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


Координаты точки a: 5, 6, 7

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

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

Координаты точки d: 6, 7, 5


а > с истинно

а < b истинно

Точки and находятся на одном расстоянии от начала отсчета


На перегрузку операторов отношения накладывается следующее важное ограничение: они должны перегружаться попарно. Так, если перегружается оператор <, то следует перегрузить и оператор >, и наоборот. Ниже приведены составленные в пары перегружаемые операторы отношения.


==      !=

<       >

<=      >=


И еще одно замечание: если перегружаются операторы == и !=, то для этого обычно требуется также переопределить методы Object.Equals() и Object.GetHashCode(). Эти методы и способы их переопределения подробнее рассматриваются в главе 11.


Перегрузка операторов true и false 

Ключевые слова true и false можно также использовать в качестве унарных операторов для целей перегрузки. Перегружаемые варианты этих операторов позволяют определить назначение ключевых слов true и false специально для создаваемых классов. После перегрузки этих ключевых слов в качестве унарных операторов для конкретного класса появляется возможность использовать объекты этого класса для управления операторами if, while, for и do-while или же в условном выражении ?.

Операторы true и false должны перегружаться попарно, а не раздельно. Ниже приведена общая форма перегрузки этих унарных операторов.


public static bool operator true(тип_параметра операнд)

{

  // Возврат логического значения true или false.

}

public static bool operator false(тип_параметра операнд)

{

  // Возврат логического значения true или false.

}


Обратите внимание на то, что и в том и в другом случае возвращается результат типа bool.

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


// Перегрyзить операторы true и false для класса ThreeD.

using System;

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

class ThreeD {

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


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

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


  // Перегрyзить оператор true.

  public static bool operator true(ThreeD op) {

    if ((op.x != 0) || (op.y != 0) || (op.z != 0))

      return true; // xотя бы одна координата не равна нyлю

    else

      return false;

  }


  // Перегрyзить оператор false.

  public static bool operator false(ThreeD op) {

    if ((op.x == 0) && (op.y == 0) && (op.z == 0))

      return true; // все координаты равны нyлю

    else

      return false;

  }


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

  public static ThreeD operator --(ThreeD op) {

    ThreeD result = new ThreeD();

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

    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);


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

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

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


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

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

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

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

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

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

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