» » » » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

На нашем литературном портале можно бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю, Троелсен Эндрю . Жанр: Базы данных. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале litmir.org.
Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Название: Язык программирования C#9 и платформа .NET5
Дата добавления: 22 август 2024
Количество просмотров: 227
Читать онлайн

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту readbookfedya@gmail.com для удаления материала

Язык программирования C#9 и платформа .NET5 читать книгу онлайн

Язык программирования C#9 и платформа .NET5 - читать бесплатно онлайн , автор Троелсен Эндрю

В 10-м издании книги описаны новейшие возможности языка C# 9 и .NET 5 вместе с подробным "закулисным" обсуждением, призванным расширить навыки критического мышления разработчиков, когда речь идет об их ремесле.

Книга охватывает ASP.NET Core, Entity Framework Core и многое другое наряду с последними обновлениями унифицированной платформы .NET, начиная с улучшений показателей производительности настольных приложений Windows в .NET 5 и обновления инструментария XAML и заканчивая расширенным рассмотрением файлов данных и способов обработки данных.

Все примеры кода были переписаны с учетом возможностей последнего выпуска C# 9.

Перейти на страницу:

First Names: Lisa

First Names: Bart

В классе List<T> определено множество дополнительных членов, представляющих интерес, поэтому за полным их описанием обращайтесь в документацию. Давайте рассмотрим еще несколько обобщенных коллекций, в частности Stack<T>, Queue<T> и SortedSet<T>, что должно способствовать лучшему пониманию основных вариантов хранения данных в приложении.

Работа с классом Stack<T>

Класс Stack&lt;T&gt; представляет коллекцию элементов, которая обслуживает элементы в стиле "последний вошел — первый вышел" (LIFO). Как и можно было ожидать, в Stack&lt;T&gt; определены члены Push() и Pop(), предназначенные для вставки и удаления элементов из стека. Приведенный ниже метод создает стек объектов Person:

static void UseGenericStack()

{

  Stack&lt;Person&gt; stackOfPeople = new();

  stackOfPeople.Push(new Person { FirstName = &quot;Homer&quot;,

                                  LastName = &quot;Simpson&quot;, Age = 47 });

  stackOfPeople.Push(new Person { FirstName = &quot;Marge&quot;,

                                  LastName = &quot;Simpson&quot;, Age = 45 });

  stackOfPeople.Push(new Person { FirstName = &quot;Lisa&quot;,

                                  LastName = &quot;Simpson&quot;, Age = 9 });

<b>  // Просмотреть верхний элемент, вытолкнуть его и просмотреть снова..</b>

  Console.WriteLine(&quot;First person is: {0}&quot;, stackOfPeople.Peek());

  Console.WriteLine(&quot;Popped off {0}&quot;, stackOfPeople.Pop());

  Console.WriteLine(&quot;nFirst person is: {0}&quot;, stackOfPeople.Peek());

  Console.WriteLine(&quot;Popped off {0}&quot;, stackOfPeople.Pop());

  Console.WriteLine(&quot;nFirst person item is: {0}&quot;, stackOfPeople.Peek());

  Console.WriteLine(&quot;Popped off {0}&quot;, stackOfPeople.Pop());

  try

  {

    Console.WriteLine(&quot;nnFirst person is: {0}&quot;, stackOfPeople.Peek());

    Console.WriteLine(&quot;Popped off {0}&quot;, stackOfPeople.Pop());

  }

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

  catch (InvalidOperationException ex)

  {

    Console.WriteLine(&quot;nError! {0}&quot;, ex.Message);  // Ошибка! Стек пуст

  }

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

}

В коде строится стек, который содержит информацию о трех лицах, добавленных в алфавитном порядке следования их имен: Homer, Marge и Lisa. Заглядывая (посредством метода Реек()) в стек, вы будете всегда видеть объект, находящийся на его вершине; следовательно, первый вызов Реек() возвращает третий объект Person. После серии вызовов Pop() и Peek() стек, в конце концов, опустошается, после чего дополнительные вызовы Реек() и Pop() приводят к генерации системного исключения. Вот как выглядит вывод:

***** Fun with Generic Collections *****

First person is: Name: Lisa Simpson, Age: 9

Popped off Name: Lisa Simpson, Age: 9

First person is: Name: Marge Simpson, Age: 45

Popped off Name: Marge Simpson, Age: 45

First person item is: Name: Homer Simpson, Age: 47

Popped off Name: Homer Simpson, Age: 47

Error! Stack empty.

Работа с классом Queue<T>

Очереди — это контейнеры, которые обеспечивают доступ к элементам в стиле "первый вошел — первый вышел" (FIFO). К сожалению, людям приходится сталкиваться с очередями практически ежедневно: в банке, в супермаркете, в кафе. Когда нужно смоделировать сценарий, в котором элементы обрабатываются в режиме FIFO, класс Queue&lt;T&gt; подходит наилучшим образом. Дополнительно к функциональности, предоставляемой поддерживаемыми интерфейсами, в Queue определены основные члены, перечисленные в табл. 10.6.

Теперь давайте посмотрим на описанные методы в работе. Можно снова задействовать класс Person и построить объект Queue&lt;T&gt;, эмулирующий очередь людей, которые ожидают заказанный кофе.

static void UseGenericQueue()

{

  // Создать очередь из трех человек.

  Queue&lt;Person&gt; peopleQ = new();

  peopleQ.Enqueue(new Person {FirstName= &quot;Homer&quot;, LastName=&quot;Simpson&quot;, Age=47});

  peopleQ.Enqueue(new Person {FirstName= &quot;Marge&quot;, LastName=&quot;Simpson&quot;, Age=45});

  peopleQ.Enqueue(new Person {FirstName= &quot;Lisa&quot;, LastName=&quot;Simpson&quot;, Age=9});

  // Заглянуть, кто первый в очереди.

  Console.WriteLine(&quot;{0} is first in line!&quot;, peopleQ.Peek().FirstName);

Перейти на страницу:
Комментариев (0)