СОВРЕМЕННЫЕ ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ. ЯЗЫК С#. ТОМ 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. Самовалидация модели Вопросы и задания для самостоятельной работы Примеры типовых заданий для самостоятельной работы Порядок решения типовых заданий Библиографический список |