СОВРЕМЕННЫЕ ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ. ЯЗЫК С#. ТОМ 2. ДЛЯ ПРОДВИНУТЫХ ПОЛЬЗОВАТЕЛЕЙ

Дадян Э.Г.

Задача тома 2 учебника — подробно, доступно, на практических при­мерах изложить все возможности языка С#, одного из самых перспектив­ных современных объектно-ориентированных языков программирования. Курс предполагает хорошее владение материалом, изложенным в томе 1 учебника, и предназначен для изучения дополнительных возможностей языка С#. Подробно рассмотрена работа со строками, датами и временем, с потоками и файловой системой, ISON и XML (на практических приме­рах) и др.
В качестве среды разработки рассматривается среда Visual Studio .NET. Все примеры программ даны на языке C#.
Соответствует требованиям федеральных государственных образова­тельных стандартов высшего образования последнего поколения.
Предназначен студентам, обучающимся по направлению подготовки 09.03.03 «Прикладная информатика», студентам бакалавриата и магистра­туры всех направлений подготовки и специальностей, а также аспирантам и слушателям ИПК.

Предисловие

Глава 1. ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ ОБЪЕКТНО-
ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ C#


1.1. Методы расширения
1.2. Частичные классы и методы
1.3. Анонимные типы
1.4. Локальные функции
1.5. Pattern matching
1.6. Деконструкторы
1.7. Паттерны switch
1.8. Nullable-типы
1.9. Переменные-ссылки и возвращение ссылки

Глава 2. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ.
ПРАКТИКА


2.1. Создание проекта библиотеки классов
2.2. Создание классов. Часть 1
2.3. Создание классов. Часть 2
2.4. Создание главного проекта

Глава 3. КОЛЛЕКЦИИ

3.1. ArrayList
3.2. Список List
3.3. Двухсвязный список LinkedList
3.4. Очередь Queue
3.5. Коллекция Stack
3.6. Коллекция Dictionary
3.7. Класс ObservableCollection
3.8. Интерфейсы IEnumerable и IEnumerator
3.9. Итераторы и оператор yield

Глава 4. РАБОТА СО СТРОКАМИ

4.1. Строки и класс System.String
4.2. Операции со строками
4.3. Форматирование и интерполяция строк
4.4. Класс StringBuilder
4.5. Регулярные выражения

Глава 5. РАБОТА С ДАТАМИ И ВРЕМЕНЕМ

5.1. Структура DateTime
5.2. Форматирование дат и времени

Глава 6. ДОПОЛНИТЕЛЬНЫЕ КЛАССЫ И СТРУКТУРЫ .NET

6.1. Отложенная инициализация и тип Lazy
6.2. Математические вычисления и класс Math
6.3. Преобразование типов и класс Convert
6.4. Класс Array и массивы
6.5. Span
6.6. Индексы и диапазоны

Глава 7. МНОГОПОТОЧНОСТЬ

7.1. Введение в многопоточность. Класс Thread
7.2. Создание потоков. Делегат Threadstart
7.3. Потоки с параметрами и ParameterizedThreadStart
7.4. Синхронизация потоков
7.5. Мониторы
7.6. Класс AutoResetEvent
7.7. Мьютексы
7.8. Семафоры
7.9. Таймеры

Глава 8. ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ И БИБЛИОТЕКА TPL

8.1. Задачи и класс Task
8.2. Работа с классом Task
8.3. Задачи продолжения
8.4. Класс Parallel
8.5. Отмена задач и параллельных операций. CancellationToken

Глава 9. AСИНХРОННОЕ ПРОГРАММИРОВАНИЕ

9.1. Асинхронные методы, async и await
9.2. Возвращение результата из асинхронного метода
9.3. Последовательный и параллельный вызовы асинхронных операций
9.4. Обработка ошибок в асинхронных методах
9.5. Отмена асинхронных операций
9.6. Асинхронные стримы

Глава 10. LINQ

10.1. Основы LINQ
10.2. Фильтрация выборки и проекция
10.3. Сортировка
10.4. Объединение, пересечение и разность коллекций
10.5. Агрегатные операции
10.6. Методы Skip и Take
10.7. Группировка
10.8. Соединение коллекций. Метод Join, GroupJoin и Zip
10.9. Методы All и Any
10.10. Отложенное и немедленное выполнение LINQ
10.11. Делегаты и анонимные методы в запросах LINQ

Глава 11. PARALLEL LINQ

11.1. Введение в Parallel LINQ. Метод AsParallel
11.2. Метод AsOrdered
11.3. Обработка ошибок и отмена операции

Глава 12. РЕФЛЕКСИЯ

12.1. Введение в рефлексию. Класс System.Type
12.2. Применение рефлексии и исследование типов
12.3. Динамическая загрузка сборок и позднее связывание
12.4. Атрибуты в .NET

Глава 13. DYNAMIC LANGUAGE RUNTIME

13.1. Dynamic Language Runtime в языке C#. Ключевое слово dynamic
13.2. DynamicObject и ExpandoObject
13.3. Использование IronPython в .NET

Глава 14. СБОРКА МУСОРА, УПРАВЛЕНИЕ ПАМЯТЬЮ И УКАЗАТЕЛИ

14.1. Сборщик мусора в языке C#
14.2. Финализируемые объекты
14.3. Конструкция using
14.4. Указатели
14.5. Указатели на структуры, члены классов и массивы

Глава 15. РАБОТА С ПОТОКАМИ И ФАЙЛОВОЙ СИСТЕМОЙ

15.1. Работа с дисками
15.2. Работа с каталогами
15.3. Работа с файлами. Классы File и FileInfo
15.4. FileStream. Чтение и запись файла
15.5. Чтение и запись текстовых файлов. StreamReader и StreamWriter
15.6. Бинарные файлы. BinaryWriter и BinaryReader
15.7. Бинарная сериализация. BinaryFormatter
15.8. Архивация и сжатие файлов

Глава 16. РАБОТА С JSON

16.1. Сериализация в JSON. JsonSerializer

Глава 17. РАБОТА С XML В ЯЗЫКЕ C#

17.1. XML-документы
17.2. Работа с XML с помощью классов System.Xml
17.3. Изменение XML-документа
17.4. Язык XPath
17.5. Linq to Xml. Создание документа XML
17.6. Выборка элементов в LINQ to XML
17.7. Изменение XML-документа в LINQ to XML
17.8. Сериализация
17.9. Сериализация в XML. XmlSerializer

Глава 18. ПРОЦЕССЫ И ДОМЕНЫ ПРИЛОЖЕНИЯ

18.1. Процессы
18.2. Домены приложений
18.3. AssemblyLoadContext и динамическая загрузка и выгрузка сборок

Глава 19. ВАЛИДАЦИЯ МОДЕЛИ
19.1. Основы валидации модели
19.2. Атрибуты валидации
19.3. Создание своих атрибутов валидации
19.4. Самовалидация модели
Вопросы и задания для самостоятельной работы
Примеры типовых заданий для самостоятельной работы
Порядок решения типовых заданий
Библиографический список