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

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

Книгу Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

178 0 18:04, 26-08-2023
Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен
26 август 2023

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

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

    1 ... 131 132 133 134 135 136 137 138 139 ... 407
    Перейти на страницу:
    FirstName {get; set;}

        public string LastName {get; set;}

        public Person(){}

        public Person(string firstName, string lastName, int age)

        {

          Age = age;

          FirstName = firstName;

          LastName = lastName;

        }

        public override string ToString()

        {

          return $"Name: {FirstName} {LastName}, Age: {Age}";

        }

      }

    }

    Удалите сгенерированный код из файла Program.cs и добавьте следующие операторы using:

    using System;

    using System.Collections.Generic;

    using FunWithGenericCollections;

    Первым будет исследоваться обобщенный класс List<T>, который уже применялся ранее в главе. Класс List<T> используется чаще других классов из пространства имен System.Collections.Generic, т.к. он позволяет динамически изменять размер контейнера. Чтобы ознакомиться с его особенностями, добавьте в класс Program метод UseGenericList(), в котором задействован класс List<T> для манипулирования набором объектов Person; вспомните, что в классе Person определены три свойства (Age, FirstName и LastName), а также специальная реализация метода ToString():

    static void UseGenericList()

    {

      // Создать список объектов Person и заполнить его с помощью

      // синтаксиса инициализации объектов и коллекции.

      List<Person> people = new List<Person>()

      {

        new Person {FirstName= "Homer", LastName="Simpson", Age=47},

        new Person {FirstName= "Marge", LastName="Simpson", Age=45},

        new Person {FirstName= "Lisa", LastName="Simpson", Age=9},

        new Person {FirstName= "Bart", LastName="Simpson", Age=8}

      };

      // Вывести количество элементов в списке.

      Console.WriteLine("Items in list: {0}", people.Count);

      // Выполнить перечисление по списку.

      foreach (Person p in people)

      {

        Console.WriteLine(p);

      }

      // Вставить новый объект Person.

      Console.WriteLine("n->Inserting new person.");

      people.Insert(2, new Person { FirstName = "Maggie",

                                    LastName = "Simpson", Age = 2 });

      Console.WriteLine("Items in list: {0}", people.Count);

      // Скопировать данные в новый массив.

      Person[] arrayOfPeople = people.ToArray();

      foreach (Person p in arrayOfPeople)  // Вывести имена

      {

        Console.WriteLine("First Names: {0}", p.FirstName);

      }

    }

    Здесь для наполнения списка List<T> объектами применяется синтаксис инициализации в качестве сокращенной записи многократного вызова метода Add(). После вывода количества элементов в коллекции (и прохода по всем элементам) вызывается метод Insert(). Как видите, метод Insert() позволяет вставлять новый элемент в List<T> по указанному индексу.

    Наконец, обратите внимание на вызов метода ToArray(), который возвращает массив объектов Person, основанный на содержимом исходного списка List<T>. Затем осуществляется проход по всем элементам данного массива с использованием синтаксиса индексатора массива. Вызов метода UseGenericList() в операторах верхнего уровня приводит к получению следующего вывода:

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

    Items in list: 4

    Name: Homer Simpson, Age: 47

    Name: Marge Simpson, Age: 45

    Name: Lisa Simpson, Age: 9

    Name: Bart Simpson, Age: 8

    ->Inserting new person.

    Items in list: 5

    First Names: Homer

    First Names: Marge

    First Names: Maggie

    First Names: Lisa

    First Names: Bart

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

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

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

    static void UseGenericStack()

    {

      Stack<Person> stackOfPeople = new();

      stackOfPeople.Push(new Person { FirstName = "Homer",

                                      LastName = "Simpson", Age = 47 });

      stackOfPeople.Push(new Person { FirstName = "Marge",

                                      LastName = "Simpson", Age = 45 });

      stackOfPeople.Push(new Person { FirstName = "Lisa",

                                      LastName = "Simpson", Age = 9 });

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

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

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

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

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

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

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

      try

      {

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

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

      }

      catch (InvalidOperationException ex)

      {

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

      }

    }

    В коде строится стек, который содержит информацию о трех лицах, добавленных в алфавитном порядке следования их имен: 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<T> подходит наилучшим образом. Дополнительно к функциональности, предоставляемой

    1 ... 131 132 133 134 135 136 137 138 139 ... 407
    Перейти на страницу:
    1. Жалоба
    Отзывы - 0

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


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

    • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
    • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
    • 3. Просьба отказаться от нецензурной лексики.
    • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

    Надеемся на Ваше понимание и благоразумие. С уважением, администратор LoveRead.info.


    Установить VPN и читай слушай бесплатно

    Новые отзывы

    1. Людмила Хофман Людмила Хофман10 июнь 22:13 У меня перевернулся мир после прочтения ваших книг! Так приятно и чисто на душе, ведь по сути неважно кто с кем , а только любовь... Долгая игра - Рейчел Рид
    2. Анна Анна08 июнь 11:28 Спасибо за новую историю жизни и любви на сайте,прочитала с удовольствием .... Давай поженимся - Юлия Резник
    3. Елена Елена08 июнь 11:13 Прочла несколько романов этого, без сомнения, талантливого автора. Впечатление прекрасное, но хотелось бы когда-нибудь прочесть... Предатель. Ты врал мне годами - Арина Арская
    Все комметарии
    Новинки бесплатной онлайн библиотеки