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

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

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

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

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

В качестве примера предположим, что создано множество классов, которые моделируют автомобили. Существует базовый класс по имени Car, который "имеет" класс Radio. Другой класс по имени JamesBondCar расширяет базовый тип Car.

На рис. 20.1 показан возможный граф объектов, моделирующий такие отношения. При чтении графов объектов для описания соединяющих стрелок можно использовать выражение "зависит от" или "ссылается на". Таким образом, на рис. 20.1 видно, что класс Car ссылается на класс Radio (учитывая отношение "имеет" ), JamesBondCar ссылается на Car (из-за отношения "является" ), а также на Radio (поскольку наследует эту защищенную переменную-член).

Разумеется, исполняющая среда не рисует картинки в памяти для представления графа связанных объектов. Взамен отношение, показанное на рис. 20.1, представляется математической формулой, которая выглядит следующим образом:

[Car 3, ref 2], [Radio 2], [JamesBondCar 1, ref 3, ref 2]

Проанализировав формулу, вы заметите, что объект 3 (Car) имеет зависимость от объекта 2 (Radio). Объект 2 (Radio) — "одинокий волк", которому никто не нужен. Наконец, объект 1 (JamesBondCar) имеет зависимость от объекта 3, а также от объекта 2. В любом случае при сериализации или десериализации экземпляра JamesBondCar граф объектов гарантирует, что типы Radio и Car тоже примут участие в процессе.

Привлекательность процесса сериализации заключается в том, что граф, представляющий отношения между объектами, устанавливается автоматически "за кулисами". Как будет показано позже в главе, при желании в конструирование графа объектов можно вмешиваться, настраивая процесс сериализации с применением атрибутов и интерфейсов.

Создание примеров типов и написание операторов верхнего уровня

Создайте новый проект консольного приложения .NET 5 по имени SimpleSerialize. Добавьте в проект новый файл класса под названием Radio.cs со следующим кодом:

using System;

using System.Linq;

using System.Collections.Generic;

using System.Text.Json.Serialization;

using System.Xml;

using System.Xml.Serialization;

namespace SimpleSerialize

{

  public class Radio

  {

    public bool HasTweeters;

    public bool HasSubWoofers;

    public List<double> StationPresets;

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

    public string RadioId = "XF-552RR6";

    public override string ToString()

    {

      var presets = string.Join(",",

                StationPresets.Select(i => i.ToString()).ToList());

       return $"HasTweeters:{HasTweeters}

                HasSubWoofers:{HasSubWoofers} Station Presets:{presets}";

    }

  }

}

Добавьте еще один файл класса по имени Car.cs и приведите его содержимое к такому виду:

using System;

using System.Text.Json.Serialization;

using System.Xml;

using System.Xml.Serialization;

namespace SimpleSerialize

{

  public class Car

  {

    public Radio TheRadio = new Radio();

    public bool IsHatchBack;

    public override string ToString()

      => $"IsHatchback:{IsHatchBack} Radio:{TheRadio.ToString()}";

  }

}

Затем добавьте очередной файл класса по имени JamesBondCar.cs и поместите в него следующий код:

using System;

using System.Text.Json.Serialization;

using System.Xml;

using System.Xml.Serialization;

namespace SimpleSerialize

{

  public class JamesBondCar : Car

  {

    public bool CanFly;

    public bool CanSubmerge;

    public override string ToString()

      => $"CanFly:{CanFly}, CanSubmerge:{CanSubmerge} {base.ToString()}";

  }

}

Ниже показан код финального файла класса Person.cs:

using System;

using System.Text.Json.Serialization;

using System.Xml;

using System.Xml.Serialization;

namespace SimpleSerialize

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