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 ... 199 200 201 202 203 204 205 206 207 ... 407
    Перейти на страницу:
    чтением конфигурационного файла и получением значения CarName. Обновите операторы using в файле Program.cs, как показано ниже:

    using System;

    using System.IO;

    using Microsoft.Extensions.Configuration;

    Модифицируйте метод Main() следующим образом:

    static void Main(string[] args)

    {

      IConfiguration config = new ConfigurationBuilder()

        .SetBasePath(Directory.GetCurrentDirectory())

        .AddJsonFile("appsettings.json", true, true)

        .Build();

    }

    Новая подсистема конфигурации начинается с создания экземпляра класса ConfigurationBuilder. Он позволяет добавлять множество файлов, устанавливать свойства (такие как местоположение конфигурационных файлов) и, в конце концов, встраивать конфигурацию внутрь экземпляра реализации интерфейса IConfiguration.

    Имея экземпляр реализации IConfiguration, вы можете обращаться с ним так, как принято в версии .NET 4.8. Добавьте приведенный далее код в конец метода Main() и после запуска приложения вы увидите, что значение будет выведено на консоль:

    Console.WriteLine($"My car's name is {config["CarName"]}");

    Console.ReadLine();

    В дополнение к файлам JSON существуют пакеты для поддержки переменных среды, Azure Key Vault, аргументов командной строки и многого другого. Подробные сведения ищите в документации по .NET Core.

    Построение и потребление библиотеки классов .NET Core

    Чтобы заняться исследованием мира библиотек классов .NET Core, будет создана сборка *.dll (по имени CarLibrary), содержащая небольшой набор открытых типов. Для начала создайте решение. Затем создайте проект библиотеки классов по имени CarLibrary и добавьте его в решение, если это еще не делалось.

    dotnet new sln -n Chapter16_AllProjects

    dotnet new classlib -lang c# -n CarLibrary -o .CarLibrary -f net5.0

    dotnet sln .Chapter16_AllProjects.sln add .CarLibrary

    Первая команда создает в текущем каталоге пустой файл решения по имени Chapterl6_AllProjects (-n). Вторая команда создает новый проект библиотеки классов .NET 5.0 (-f) под названием CarLibrary (-n) в подкаталоге CarLibrary (-о). Указывать выходной подкаталог (-о) необязательно. Если он опущен, то проект будет создан в подкаталоге с таким же именем, как у проекта. Третья команда добавляет новый проект к решению.

    На заметку! Интерфейс командной строки .NET Core снабжен хорошей справочной системой. Для получения сведений о любой команде укажите с ней -h. Например, чтобы увидеть все шаблоны, введите dotnet new -h. Для получения дополнительной информации о создании проекта библиотеки классов введите dotnet new classlib -h.

    После создания проекта и решения вы можете открыть его в Visual Studio (или Visual Studio Code), чтобы приступить к построению классов. Открыв решение, удалите автоматически сгенерированный файл Class1.cs. Проектное решение библиотеки для работы с автомобилями начинается с создания перечислений EngineStateEnum и MusicMediaEnum. Добавьте в проект два файла с именами MusicMediaEnum.cs и EngineStateEnum.cs и поместите в них следующий код:

    // MusicMediaEnum.cs

    namespace CarLibrary

    {

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

        public enum MusicMediaEnum

        {

            MusicCd,

            MusicTape,

            MusicRadio,

            MusicMp3

        }

    }

    // EngineStateEnum.cs

    namespace CarLibrary

    {

        // Представляет состояние двигателя.

        public enum EngineStateEnum

        {

            EngineAlive,

            EngineDead

        }

    }

    Далее создайте абстрактный базовый класс по имени Car, который определяет разнообразные данные состояния через синтаксис автоматических свойств. Класс Car также имеет единственный абстрактный метод TurboBoost(), в котором применяется специальное перечисление (EngineState), представляющее текущее состояние двигателя автомобиля. Вставьте в проект новый файл класса C# по имени Car.cs со следующим кодом:

    namespace CarLibrary

    {

      // Абстрактный базовый класс в иерархии.

      public abstract class Car

      {

        public string PetName {get; set;}

        public int CurrentSpeed {get; set;}

        public int MaxSpeed {get; set;}

        protected EngineStateEnum State = EngineStateEnum.EngineAlive;

        public EngineStateEnum EngineState => State;

        public abstract void TurboBoost();

        protected Car(){}

        protected Car(string name, int maxSpeed, int currentSpeed)

        {

          PetName = name;

          MaxSpeed = maxSpeed;

          CurrentSpeed = currentSpeed;

        }

      }

    }

    Теперь предположим, что есть два непосредственных потомка класса Car с именами MiniVan (минивэн) и SportsCar (спортивный автомобиль). В каждом из них абстрактный метод TurboBoost() переопределяется для отображения подходящего сообщения в окне консоли. Вставьте в проект два новых файла классов C# с именами MiniVan.cs и SportsCar.cs. Поместите в них показанный ниже код:

    // SportsCar.cs

    using System;

    namespace CarLibrary

    {

      public class SportsCar : Car

      {

        public SportsCar(){ }

        public SportsCar(

          string name, int maxSpeed, int currentSpeed)

          : base (name, maxSpeed, currentSpeed){ }

        public override void TurboBoost()

        {

          Console.WriteLine("Ramming speed! Faster is better...");

        }

      }

    }

    // MiniVan.cs

    using System;

    namespace CarLibrary

    {

      public class MiniVan : Car

      {

        public MiniVan(){ }

        public MiniVan(

          string name, int maxSpeed, int currentSpeed)

          : base (name, maxSpeed, currentSpeed){ }

        public override void TurboBoost()

        {

          // Минивэны имеют плохие возможности ускорения!

          State = EngineStateEnum.EngineDead;

          Console.WriteLine("Eek! Your engine block exploded!");

        }

      }

    }

    Исследование манифеста

    Перед использованием CarLibrary.dll в клиентском приложении давайте посмотрим, как библиотека кода устроена внутри. Предполагая, что проект был скомпилирован, запустите утилиту ildasm.exe со скомпилированной сборкой. Если у вас нет утилиты ildasm.exe (описанной ранее в книге), то она также находится в каталоге для настоящей главы внутри хранилища GitHub.

    ildasm /all /METADATA /out=CarLibrary.il

        .CarLibrarybinDebugnet5.0CarLibrary.dll

    Раздел манифеста Manifest дизассемблированных результатов начинается со строки //Metadata version: 4.0.30319. Непосредственно за ней следует список всех внешних сборок, требуемых для библиотеки классов:

    // Metadata version: v4.0.30319

    .assembly extern System.Runtime

    {

      .publickeytoken = (B0 3F 5F 7F

    1 ... 199 200 201 202 203 204 205 206 207 ... 407
    Перейти на страницу:
    1. Жалоба
    Отзывы - 0

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


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

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

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


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

    Новые отзывы

    1. Анна Анна15 июнь 07:43 [spoiler][книга интересная,но не полная и к концу главы повторяются.... Кириленко Ирина – Бирюк
    2. Вера Вера15 июнь 01:46 Благодарю Автора!!!! Хорошо,что все хорошо кончается! Сюжет-захватывает!!!... Звезда+1 - Алайна Салах
    3. Борис Борис14 июнь 00:50 Колокола в России тем и отличались от западных что раскачиаали именно язык колокола,а не сам колокол! Авторы что-жертвы ЕГЭ? Не... Соединенные Штаты России 3 - Полина Ром
    Все комметарии
    Новинки бесплатной онлайн библиотеки