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






    Stack stk2 = new Stack(10);

    Stack stk3 = new Stack(10);

    char ch;

    int i;


    // Поместить ряд символов в стек stk1.

    Console.WriteLine("Поместить символы А-J в стек stk1.");

    for(i=0; !stk1.IsFull(); i++)

      stk1.Push((char)('A' + i));

    if(stk1.IsFull())

      Console.WriteLine("Стек stk1 заполнен.");


    // Вывести содержимое стека stk1.

    Console.Write("Содержимое стека stk1: ");

    while( !stk1.IsEmpty()) {

      ch = stk1.Pop();

      Console.Write(ch);

    }


    Console.WriteLine();


    if(stk1.IsEmpty())

      Console.WriteLine("Стек stk1 пуст.");


    // Поместить дополнительные символы в стек stk1.

    Console.WriteLine("Вновь поместить символы А-J в стек stk1.");

    for(i=0; !stk1.IsFull(); i++)

      stk1.Push((char)('A' + i));


    // А теперь извлечь элементы из стека stk1 и поместить их в стек stk2.

    // В итоге элементы сохраняются в стеке stk2 в обратном порядке.

    Console.WriteLine("А теперь извлечь символы из стека stk1\n" +

          "и поместить их в стек stk2.");

    while( !stk1.IsEmpty()) {

      ch = stk1.Pop();

      stk2.Push(ch);

    }


    Console.Write("Содержимое стека stk2: ");

    while( !stk2.IsEmpty() ) {

      ch = stk2.Pop();

      Console.Write(ch);

    }


    Console.WriteLine("\n");


    // Поместить 5 символов в стек.

    Console.WriteLine("Поместить 5 символов в стек stk3.");

    for(i=0; i < 5; i++)

      stk3.Push((char) ('A' + i)) ;


    Console.WriteLine("Емкость стека stk3: " + stk3.Capacity());

    Console.WriteLine("Количество объектов в стеке stk3: " 

          + stk3.GetNum());

  }

}


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


Поместить символы А-J в стек stk1.

Стек stk1 заполнен.

Содержимое стека stk1: JIHGFEDCBA

Стек stk1 пуст.


Вновь поместить символы А-J в стек stk1.

А теперь извлечь символы из стека stk1

и поместить их в стек stk2.

Содержимое стека stk2: ABCDEFGHIJ


Поместить 5 символов в стек stk3.

Емкость стека stk3: 10

Количество объектов в стеке stk3: 5


Передача объектов методам по ссылке

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


// Пример передачи объектов методам по ссылке.

using System;

class MyClass {

  int alpha, beta;


  public MyClass(int i, int j) {

    alpha = i;

    beta = j;

}


  // Возвратить значение true, если параметр ob

  // имеет те же значения, что и вызывающий объект,

  public bool SameAs(MyClass ob) {

    if ((ob.alpha == alpha) & (ob.beta == beta))

      return true;

    else

      return false;

  }


  // Сделать копию объекта ob.

  public void Copy(MyClass ob) {

    alpha = ob.alpha;

    beta = ob.beta;

  }


  public void Show() {

    Console.WriteLine("alpha: {0}, beta: {1}", alpha, beta);

  }

}


class PassOb {

  static void Main() {

    MyClass ob1 = new MyClass(4, 5);

    MyClass ob2 = new MyClass(6, 7);


    Console.Write("ob1: ");

    ob1.Show();


    Console.Write("ob2: ");

    ob2.Show();


    if(ob1.SameAs(ob2))

      Console.WriteLine("ob1 и ob2 имеют одинаковые значения.");

    else

      Console.WriteLine("ob1 и ob2 имеют разные значения.");


    Console.WriteLine() ;


    // А теперь сделать объект ob1 копией объекта ob2.

    ob1.Copy(ob2);


    Console.Write("ob1 после копирования: ");

    ob1.Show();

    if(ob1.SameAs(ob2) )

      Console.WriteLine("ob1 и ob2 имеют одинаковые значения.");

    else

      Console.WriteLine("ob1 и ob2 имеют разные значения.");

  }

}


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


ob1: alpha: 4, beta: 5

ob2: alpha: 6, beta: 7

оb1 и ob2 имеют разные значения.


оb1 после копирования: alpha: 6, beta: 7

ob1 и оb2 имеют одинаковые значения.


Каждый из методов SameAs() и Сору() в приведенной выше программе получает ссылку на объект типа MyClass в качестве аргумента. Метод SameAs() сравнивает значения переменных экземпляра alpha и beta в вызывающем объекте со значениями аналогичных переменных в объекте, передаваемом посредством параметра ob. Данный метод возвращает логическое значение true только в том случае, если оба объекта имеют одинаковые значения этих переменных экземпляра. А метод Сору() присваивает значения переменных alpha и beta из объекта, передаваемого по ссылке посредством параметра ob, переменным alpha и beta из вызывающего объекта. Как показывает данный пример, с точки зрения синтаксиса объекты передаются методам по ссылке таким же образом, как и значения обычных типов.


Способы передачи аргументов методу

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

Первым способом является вызов по значению. В этом случае значение аргумента копируется в формальный параметр метода. Следовательно, изменения, вносимые в параметр метода, не оказывают никакого влияния на аргумент, используемый для вызова. А вторым способом передачи аргумента является вызов по ссылке. В данном случае параметру метода передается ссылка на аргумент, а не значение аргумента. В методе эта ссылка используется для доступа к конкретному аргументу, указываемому при вызове. Это означает, что изменения, вносимые в параметр, будут оказывать влияние на аргумент, используемый для вызова метода.

По умолчанию в C# используется вызов по значению, а это означает, что копия аргумента создается и затем передается принимающему параметру. Следовательно, при передаче значения обычного типа, например int или double, все, что происходит с параметром, принимающим аргумент, не оказывает никакого влияния за пределами метода. В качестве примера рассмотрим следующую программу.


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

using System;

class Test {

  /* Этот метод не оказывает никакого влияния на аргументы, используемые для его вызова. */

  public void NoChange(int i, int j) {


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

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

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


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

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

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

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

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

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

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