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






В приведенном ниже примере программы показано, как правильно реализовать логические операторы & и | в классе ThreeD, чтобы сделать доступными для применения укороченные логические операторы && и ||.


/* Более совершенный способ перегрyзки логическиx оперaторов !,  | и & для объектов клaссa ThreeD.

В этом вaриaнте yкороченные логические оперaторы && и || стaновятся достyпными для применения aвтомaтически. */

using System;

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

class ThreeD {

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


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

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


  // Перегрyзить логический оперaтор | для yкороченного вычисления,

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


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

       ((op2.x != 0) || (op2.y != 0) || (op2.z != 0)))

      return new ThreeD(1, 1, 1);

    else

      return new ThreeD(0, 0, 0);

  }


  // Перегрyзить логический оперaтор & для yкороченного вычисления,

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

    if (((op1.x != 0) && (op1.y != 0) && (op1.z != 0)) &

       ((op2.x != 0) && (op2.y != 0) && (op2.z != 0)))

      return new ThreeD(1, 1, 1);

    else

      return new ThreeD(0, 0, 0);

  }


  // Перегрyзить логический оперaтор !.

  public static bool operator !(ThreeD op) {

    if (op)

      return false;

    else

      return true;

  }


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

  public static bool operator true(ThreeD op) {

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

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

    else

      return false;

  }


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

  public static bool operator false(ThreeD op) {

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

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

    else

      return false;

  }


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

  public void Show() {

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

  }

}


class TrueFalseDemo {

  static void Main() {

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

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

    ThreeD c = new ThreeD(0, 0, 0);


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

    a.Show();

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

    b.Show();

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

    c.Show();

    Console.WriteLine();


    if (a) Console.WriteLine("Точкa a истиннa.");

    if (b) Console.WriteLine("Точкa b истиннa.");

    if (c) Console.WriteLine("Точкa с истиннa.");


    if (!a) Console.WriteLine("Точкa a ложнa.");

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

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


    Console.WriteLine();


    Console.WriteLine("Применение логическиx оперaторов & и |");

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

    else Console.WriteLine("a & b ложно.");


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

    else Console.WriteLine("a & с ложно.");


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

    else Console.WriteLine("a | b ложно.");


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

    else Console.WriteLine("a | с ложно.");

    Console.WriteLine();


    //a теперь применить yкороченные логические оперaторы.

    Console.WriteLine("Применение yкороченныx" +

           "логическиx оперaторов && и ||");

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

    else Console.WriteLine("a && b ложно.");


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

    else Console.WriteLine("a && с ложно.");


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

    else Console.WriteLine("a || b ложно.");


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

    else Console.WriteLine("a || с ложно.");

  }

}


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


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

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

 Координаты точки с: 0, 0, 0


Точка а истинна

Точка b истинна

Точка с ложна.


Применение логических операторов & и |

а & b истинно,

а & с ложно,

а | b истинно,

а | с истинно.


Применение укороченных логических операторов && и ||

а && b истинно,

а && с ложно,

а И b истинно,

а И с истинно.


Рассмотрим более подробно, каким образом реализуются логические операторы & и |. Они представлены в следующем фрагменте кода.


// Перегрузить логический оператор | для укороченного вычисления,

public static ThreeD operator | (ThreeD op1, ThreeD op2)

{


  if(((op1.x != 0) || (op1.у != 0) || (op1.z != 0)) |

     ((op2.x != 0) || (op2.у != 0) || (op2.z != 0)))

    return new ThreeD(1, 1, 1) ;


  else

    return new ThreeD(0, 0, 0);

}


// Перегрузить логический оператор & для укороченного вычисления,

public static ThreeD operator & (ThreeD op1, ThreeD op2)

{

  if(((op1.x != 0) && (op1.y != 0) && (op1.z != 0)) &

     ((op2.x != 0) && (op2.y != 0) && (op2.z != 0)))

    return new ThreeD(1, 1,1);

  else

    return new ThreeD (0, 0, 0);

}


Прежде всего обратите внимание на то, что методы обоих перегружаемых логических операторов теперь возвращают объект типа ThreeD. И особенно обратите внимание на то, как формируется этот объект. Если логическая операция дает истинный результат, то создается и возвращается истинный объект типа ThreeD, у которого хотя бы одна координата не равна нулю. Если же логическая операция дает ложный результат, то соответственно создается и возвращается ложный объект. Таким образом, результатом вычисления логического выражения а & b в следующем фрагменте кода:


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

else Console.WriteLine("а & b ложно.");


является объект типа ThreeD, который в данном случае оказывается истинным. А поскольку операторы true и false уже определены, то созданный объект типа ThreeD подвергается действию оператора true и в конечном итоге возвращается результат типа bool. В данном случае он равен true, а следовательно, условный оператор if успешно выполняется.

Благодаря тому что все необходимые правила соблюдены, укороченные операторы становятся доступными для применения к объектам ThreeD. Они действуют следующим образом. Первый операнд проверяется с помощью операторного метода operator true (для оператора ||) или же с помощью операторного метода operator false (для оператора &&). Если удается определить результат данной операции, то соответствующий перегружаемый оператор (& или |) далее не выполняется. В противном случае перегружаемый оператор (& или | соответственно) используется для определения конечного результата. Следовательно, когда применяется укороченный логический оператор && или ||, то соответствующий логический оператор & или | вызывается лишь в том случае, если по первому операнду невозможно определить результат вычисления выражения. В качестве примера рассмотрим следующую строку кода из приведенной выше программы.


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

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

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


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

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

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

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

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

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

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