Язык программирования C#9 и платформа .NET5
- Автор: Эндрю Троелсен
- Жанр: Базы данных
- Дата выхода: 2022
Читать книгу "Язык программирования C#9 и платформа .NET5"
Оглавление
Об авторах
О технических рецензентах
Благодарности
Введение
Авторы и читатели — одна команда
Краткий обзор книги
Часть I. Язык программирования C# и платформа .NET 5
Часть II. Основы программирования на C#
Часть III. Объектно-ориентированное программирование на C#
Часть IV. Дополнительные конструкции программирования на C#
Часть V. Программирование с использованием сборок .NET Core
Часть VI. Работа с файлами, сериализация объектов и доступ к данным
Часть VII. Entity Framework Core
Часть IV. Дополнительные конструкции программирования на C#
Часть IX. ASP.NET Core
Ждем ваших отзывов!
Часть I
Глава 1
Некоторые основные преимущества инфраструктуры .NET Core
Понятие жизненного цикла поддержки .NET Core
Предварительный обзор строительных блоков .NET Core (.NET Runtime, CTS и CLS)
Роль библиотек базовых классов
Роль .NET Standard
Что привносит язык C#
Основные средства в предшествующих выпусках
Новые средства в C# 9
Сравнение управляемого и неуправляемого кода
Использование дополнительных языков программирования, ориентированных на .NET Core
Обзор сборок .NET
Роль языка CIL
Преимущества языка CIL
Компиляция кода CIL в инструкции, специфичные для платформы
Предварительная компиляция кода CIL в инструкции, специфичные для платформы
Роль метаданных типов .NET Core
Роль манифеста сборки
Понятие общей системы типов
Типы классов CTS
Типы интерфейсов CTS
Типы структур CTS
Типы перечислений CTS
Типы делегатов CTS
Члены типов CTS
Встроенные типы данных CTS
Понятие общеязыковой спецификации
Обеспечение совместимости с CLS
Понятие .NET Core Runtime
Различия между сборкой пространством имен и типом
Доступ к пространству имен программным образом
Ссылка на внешние сборки
Исследование сборки с помощью ildasm.exe
Резюме
Глава 2
Установка .NET 5
Понятие схемы нумерации версий .NET 5
Подтверждение успешности установки .NET 5
Использование более ранних версий .NET (Core) SDK
Построение приложений .NET Core с помощью Visual Studio
Установка Visual Studio 2019 (Windows)
Испытание Visual Studio 2019
Использование нового диалогового окна для создания проекта и редактора кода C#
Изменение целевой инфраструктуры .NET Core
Использование функциональных средств C# 9
Запуск и отладка проекта
Использование окна Solution Explorer
Использование визуального конструктора классов
Построение приложений .NET Core с помощью Visual Studio Code
Испытание Visual Studio Code
Создание решений и проектов
Исследование рабочей области Visual Studio Code
Восстановление пакетов, компиляция и запуск программ
Отладка проекта
Документация по .NET Core и C#
Резюме
Часть II
Глава 3
Структура простой программы C#
Использование вариаций метода Main() (обновление в версии 7.1)
Использование операторов верхнего уровня (нововведение в версии 9.0)
Указание кода ошибки приложения (обновление в версии 9.0)
Обработка аргументов командной строки
Указание аргументов командной строки в Visual Studio
Интересное отступление от темы: некоторые дополнительные члены класса System.Environment
Использование класса System.Console
Выполнение базового ввода и вывода с помощью класса Console
Форматирование консольного вывода
Форматирование числовых данных
Форматирование числовых данных за рамками консольных приложений
Работа с системными типами данных и соответствующими ключевыми словами C#
Объявление и инициализация переменных
Литерал default (нововведение в версии 7.1)
Использование внутренних типов данных и операции new (обновление в версии 9.0)
Иерархия классов для типов данных
Члены числовых типов данных
Члены System.Boolean
Члены System.Char
Разбор значений из строковых данных
Использование метода TryParse() для разбора значений из строковых данных
Использование типов System.DateTime и System.TimeSpan
Работа с пространством имен System.Numerics
Использование разделителей групп цифр (нововведение в версии 7.0)
Использование двоичных литералов (нововведение в версии 7.0/7.2)
Работа со строковыми данными
Выполнение базовых манипуляций со строками
Выполнение конкатенации строк
Использование управляющих последовательностей
Выполнение интерполяции строк
Определение дословных строк (обновление в версии 8.0)
Работа со строками и операциями равенства
Модификация поведения сравнения строк
Строки неизменяемы
Использование типа System.Text.StringBuilder
Сужающие и расширяющие преобразования типов данных
Использование ключевого слова checked
Настройка проверки переполнения на уровне проекта
Настройка проверки переполнения на уровне проекта (Visual Studio)
Использование ключевого слова unchecked
Неявно типизированные локальные переменные
Неявное объявление чисел
Ограничения неявно типизированных переменных
Неявно типизированные данные строго типизированы
Полезность неявно типизированных локальных переменных
Работа с итерационными конструкциями C#
Использование цикла for
Использование цикла foreach
Использование неявной типизации в конструкциях foreach
Использование циклов while и do/while
Краткое обсуждение области видимости
Работа с конструкциями принятия решений и операциями отношения/равенства
Использование оператора if/else
Использование операций отношения и равенства
Использование операторов if/else и сопоставления с образцом (нововведение в версии 7.0)
Внесение улучшений в сопоставление с образцом (нововведение в версии 9.0)
Использование условной операции (обновление в версиях 7.2, 9.0)
Использование логических операций
Использование оператора switch
Выполнение сопоставления с образцом в операторах switch (нововведение в версии 7.0, обновление в версии 9.0)
Использование выражений switch (нововведение в версии 8.0)
Резюме
Глава 4
Понятие массивов C#
Синтаксис инициализации массивов C#
Понятие неявно типизированных локальных массивов
Определение массива объектов
Работа с многомерными массивами
Использование массивов в качестве аргументов и возвращаемых значений
Использование базового класса System.Array
Использование индексов и диапазонов (нововведение в версии 8.0)
Понятие методов
Члены, сжатые до выражений
Локальные функции (нововведение в версии 7.0, обновление в версии 9.0)
Статические локальные функции (нововведение в версии 8.0)
Понятие параметров методов
Модификаторы параметров для методов
Стандартное поведение передачи параметров
Стандартное поведение для типов значений
Стандартное поведение для ссылочных типов
Использование модификатора out (обновление в версии 7.0)
Отбрасывание параметров out (нововведение в версии 7.0)
Модификатор out в конструкторах и инициализаторах (нововведение в версии 7.3)
Использование модификатора ref
Использование модификатора in (нововведение в версии 7.2)
Использование модификатора params
Определение необязательных параметров
Использование именованных параметров (обновление в версии 7.2)
Понятие перегрузки методов
Понятие типа enum
Управление хранилищем, лежащим в основе перечисления
Объявление переменных типа перечисления
Использование типа System.Enum
Динамическое обнаружение пар "имя-значение" перечисления
Использование перечислений, флагов и побитовых операций
Понятие структуры (как типа значения)
Создание переменных типа структур
Использование структур, допускающих только чтение (нововведение в версии 7.2)
Использование членов, допускающих только чтение (нововведение в версии 8.0)
Использование структур ref (нововведение в версии 7.2)
Использование освобождаемых структур ref (нововведение в версии 8.0)
Типы значений и ссылочные типы
Использование типов значений ссылочных типов и операции присваивания
Использование типов значений, содержащих ссылочные типы
Передача ссылочных типов по значению
Передача ссылочных типов по ссылке
Заключительные детали относительно типов значений и ссылочных типов
Понятие типов С#, допускающих null
Использование типов значений, допускающих null
Использование ссылочных типов, допускающих null (нововведение в версии 8.0)
Включение ссылочных типов, допускающих null
Ссылочные типы, допускающие null, в действии
Рекомендации по переносу кода
Работа с типами, допускающими значение null
Операция объединения с null
Операция присваивания с объединением с null (нововведение в версии 8.0)
null-условная операция
Понятие кортежей (нововведение и обновление в версии 7.0)
Начало работы с кортежами
Использование выведенных имен переменных (обновление в версии C# 7.1)
Понятие эквивалентности/неэквивалентности кортежей (нововведение в версии 7.3)
Использование отбрасывания с кортежами
Использование отбрасывания с кортежами
Использование выражений switch с сопоставлением с образцом для кортежей (нововведение в версии 8.0)
Деконструирование кортежей
Деконструирование кортежей с позиционным сопоставлением с образцом (нововведение в версии 8.0)
Резюме
Часть III
Глава 5
Знакомство с типом класса C#
Размещение объектов с помощью ключевого слова new
Понятие конструкторов
Роль стандартного конструктора
Определение специальных конструкторов
Конструкторы в виде членов, сжатых до выражений (нововведение в версии 7.0)
Конструкторы с параметрами out (нововведение в версии 7.3)
Еще раз о стандартном конструкторе
Роль ключевого слова this
Построение цепочки вызовов конструкторов с использованием this
Исследование потока управления конструкторов
Еще раз о необязательных аргументах
Понятие ключевого слова static
Определение статических полей данных
Определение статических методов
Определение статических конструкторов