Рекомендуем

Ключевые слова:
C#Программирование
Основы современного программирования. Разработка гетерогенных систем в Интернет-ориентированной средеЗыков С. В. Основы современного программирования. Разработка гетерогенных систем в Интернет-ориентированной среде
Основы объектно-ориентированного программирования на языке Си++Фридман А. Л. Основы объектно-ориентированного программирования на языке Си++
Проектирование интерактивных Web-приложенийГанеев Р.М. Проектирование интерактивных Web-приложений

Книга

Программирование на С# для платформы .NET Core 3

Курс лекций
Тиражирование книги начато в 2020 году
328 стр.
Формат 60х90/16 (145x215 мм)
Исполнение: в мягкой обложке
ISBN 978-5-9912-0874-1
ББК 32.97
УДК 004.438(075.8)
Гриф
Рекомендовано методическим советом Уральского федерального университета в качестве учебного пособия для студентов вузов, обучающихся по направлениям подготовки: 10.03.01 – Информационная безопасность; 10.05.01 – Компьютерная безопасность; 10.02.01 – Информационная безопасность телекоммуникационных систем; 10.05.04 – Информационно-аналитические системы безопасности; 09.03.01 – Информатика и вычислительная техника; 09.03.02 – Информационные системы и технологии; 09.03.03 – Прикладная информатика; 09.03.04 – Программная инженерия
Аннотация

Курс лекций по программированию на C# предполагает, что читатель владеет языком программирования С, знаком с концепцией объектно-ориентированного программирования и оконным интерфейсом. Используется последняя версия фреймворка – .NETCore 3.1 на VisualStudio 2019. В сравнении с языком С++ рассмотрен синтаксис C#, где особое внимание уделено последним изменениям стандарта. Язык интегрированных запросов LINQ показан в применении к коллекциям, xml-файлам, базам данных. WindowsForms в .NetCore еще не доработан, поэтому ограничились версией Framework 4.7.2. Уделено особое внимание управлению потоками выполнения, параллельной и асинхронной работе. Показано, как загрузить внешнюю сборку и работать в WinAPI-функциями. Листинги всех примеров размещены на сайте издательства.

Для студентов и аспирантов высших учебных заведений, изучающих информационные технологии, а также преподавателей, читающих эти дисциплины. Будет полезно читателям, самостоятельно изучающим программирование на языке C#.

Оглавление

Введение

1. Краткий обзор синтаксиса C#
Типы данных
Литералы
Интерполяция строк
Буквальный строковый литерал
Неявно типизированные переменные
Операции
Операторы языка
Оператор безусловного перехода goto
Условный оператор if
Арифметический условный оператор ?
Операторы цикла
Переключатель switch
Автоматическая генерация кода
Вопросы
Задания для самостоятельной работы

2. Массивы
Одномерные массивы
Многомерные массивы
Цикл foreach
Массивы массивов (ступенчатые массивы)
Извлечение фрагмента массива
Пространство имен
Обработка исключений
Вопросы.
Задания для самостоятельной работы

3. Классы
Константы
Конструкторы
Ссылка на текущий экземпляр this
Оператор new
Перенаправление вызова конструктора
Деструкторы
Методы
Возвращаемое методом значение, оператор return
Параметры
Модификаторы ref, in, out
Локальная переменная-ссылка
Переменное число параметров, модификатор params
Локальные функции
Свойства
Инициализаторы
Перегрузка операторов
Операторы приведения типа
Индексаторы
Создание вложенных классов
Анонимные типы
Оператор ??
Операторы ?. и ?[]
Вопросы
Задания для самостоятельной работы

4. Наследование
Модель «быть»( is-a)
Вызов конструктора базового класса, ключевое слово base
Виртуальные методы, модификатор virtual
Сокрытие методов и переменных, ключевое слово new.
Абстрактные методы и классы, модификатор abstract
Герметизированные (запечатанные) методы и классы, модификатор sealed
Модель включения «иметь»( has-a)
Интерфейсы
Статические поля и константы
Свойства
Индексаторы
Несколько полезных интерфейсов
Вопросы
Задания для самостоятельной работы

5. Дополнительные возможности ООП
Структуры
Упаковка и распаковка объектов
Перечисления
Кортежи
Коллекции
Обобщенные классы
Наследование обобщенных классов
Обобщенные методы
Расширяющие методы
Итераторы
Обобщенные коллекции
Вопросы
Задания для самостоятельной работы

6. Делегаты, события и лямбда-выражения
Анонимные методы
Лямбда-выражения
Одиночные лямбда-выражения
Блочные лямбда-выражения
Кортежи в лямбда-выражениях
Паттерны switch
События
Аксессоры событий
Небезопасный код
Вопросы
Задания для самостоятельной работы

7. Работа с текстовыми строками
Класс String
Форматирование строк
Форматирование строк с учетом языка и региональных стандартов
Класс StringBuilder
Работа с датой и временем
Класс CultureInfo
Регулярные выражения
Синтаксис регулярных выражений
Настройка режима работы Regex
Замена в тексте при помощи регулярных выражений
Вопросы
Задания для самостоятельной работы

8. Работа с файлами
Работа с дисками
Работа с каталогами
Работа с файлами
Потоковые классы
Классы байтовых потоков
Классы символьных потоков
Перенаправление стандартных потоков
Классы StringReader и StringWriter
Классы работы с двоичными данными
Дамп файла
Вопросы
Задания для самостоятельной работы

9. LINQ
LINQ to Objects
Фильтрация данных с помощью оператора where
Сортировка данных с помощью оператора orderby
Выборка и преобразование данных оператором select
Группировка результатов с помощью оператора group
Создание локальной переменной запроса, оператор let
Объединение последовательностей, оператор join
Создание группового объединения с помощью оператора into
Методы расширений в запросах
Коллекция как множество
Вопросы.
Задания для самостоятельной работы

10. LINQ to XML
Создание XML-документа, класс XElement
Класс XDocument
Конструирование XML-документа «на лету»
Модификация дерева XML-документа
Сохранение XML-документа
Чтение XML-документа
Пример обработки XML-файла
Конвертация fb2-файла
Использование XPath для поиска в xml-документе
Вопросы
Задания для самостоятельной работы

11. LINQ to Entities
Создание БД
Открытие существующей БД
Работа с многотабличной БД
Nullable-типы
Модель данных
Выборка данных
Вопросы
Задания для самостоятельной работы

12. Хранение данных
Сериализация
Бинарная сериализация
Сериализация в JSON
Сериализация в XML
Архивация файлов
Класс GZipStream
Класс ZipArchive
Класс ZipFile
Вопросы
Задания для самостоятельной работы

13. Windows Forms
Стандартная заготовка проекта Windows Forms
Обработка событий формы
События мыши
События клавиатуры
Событие Paint
Простой калькулятор
Вопросы
Задания для самостоятельной работы

14. Графические построения
Единицы измерения
Перья
Кисти
Растровая кисть
Фоновое изображение формы
Ресурсы
Вопросы
Задания для самостоятельной работы

15. Элементы управления
Меню
Панель инструментов
Строка состояния
Простой редактор текстов
Модернизация текстового редактора
Калькулятор дат
Построение x-y графика
Вопросы
Задания для самостоятельной работы

16. Диалоговые формы
Модальный диалог
Немодальный диалог
Динамическое размещение элементов управления
Стыковка и привязка
Панели
Связывание свойств элементов управления
Вопросы
Задания для самостоятельной работы
17. Сборки, процессы, потоки
Повторное использование кода
Сборки общего пользования
Атрибуты
Домены приложений
Процессы
Потоки
Класс BackgroundWorker
Пулы потоков
Вопросы
Задания для самостоятельной работы

18. Управление потоками
Класс Timer
Статические данные в потоках
Приоритеты потоков
Приостановка потока
Завершение потока
Синхронизация потоков
Атомарные операции
Блокировка кода
Вопросы
Задания для самостоятельной работы

19. Задачи, параллельные и асинхронные вычисления
Завершение задачи
Передача параметров в задачу
Параллельные вычисления
Выход из параллельного цикла
Параллельное выполнение группы методов
Измерение временных интервалов
Асинхронные методы, async и await
Передаваемые параметры и возвращаемое значение
Оператор await в методе Main()
Обработка исключений в асинхронных методах
Вопросы
Задания для самостоятельной работы

20. Рефлексия, работа с WinAPI-функциями
Загрузка внешней сборки
Вызов функций Windows API
Диалог выбора имени файла
Вопросы
Задания для самостоятельной работы

Литература