Модуль 1. Введение в платформу .Net (2 ак. ч.)
Обзор платформ .Net.
Основные элементы платформы .Net.
Использование интегрированной среды разработки Visual Studio Code.
Определение понятия Сборка и её описание.
Особенности языка программирования C#.
Создание и работа со сборками в Visual Studio Code.
Работа в командной строке.
Модуль 2. Введение в язык программирования C# (2 ак. ч.)
Языковые лексемы C#.
Введение в систему типов языка C#.
Пространства имён.
Работа со структурными типами и константами.
Структуры только для чтения и передаваемые по ссылке.
Тип данных Nullable, BigInteger и Complex.
Операции языка C#.
Разработка пользовательских структурных типов.
Создание и работа со структурой на C#.
Модуль 3. Методы и операторы C# (3 ак. ч.)
Операторы ветвления.
Pattern matching и выражение switch.
Операторы циклов.
Создание и вызов методов.
Перегрузка и методы с переменным числом аргументов.
Передача параметров по ссылке и возврат по ссылке.
Параметры по умолчанию и именованные параметры.
Кортежи.
Локальные методы.
Написание методов в Visual Studio Code.
Модуль 4. Массивы и строки в C# (3 ак. ч.)
Одномерные массивы и stackalloc.
Диапазоны в C# 8.0
Многомерные массивы.
Класса String, интерполяция строк.
Динамические строки.
Регулярные выражения.
Работа с аргументами командной строки в Visual Studio Code.
Модуль 5. Разработка классов на C# (3 ак. ч.)
Обзор основных концепций ООП.
Объявление класса.
Члены класса и создание объектов класса.
Модификаторы доступа.
Свойства и автоматические свойства.
Модификаторы const, readonly и static.
Конструкторы и деструкторы в C#.
Partial классы.
Анонимные классы.
Вложенные классы.
Написание классов для приложения Геометрия.
Модуль 6. Наследование и полиморфизм (3 ак. ч.)
Наследование как механизм повторного использования кода.
Конструктор при наследовании
Преобразование типов и операция is(as) .
Виртуальные методы и позднее связывание.
Абстрактные классы и методы.
Модификатор new и сокрытие членов класса.
Создание иерархии для приложения Геометрия.
Модуль 7. Иерархия классов .Net Framework (3 ак. ч.)
Класс Object и переопределение его методов.
Упаковка и распаковка объектов.
Метаданные и рефлексия.
Другие полезные классы .Net Standard.
Модуль 8. Обработка ошибок в C# (3 ак. ч.)
Концепция исключений.
Использование операторов try, catch и finally.
Создание своих классов исключений.
Контроль за переполнением при целочисленных вычислениях.
Модуль 9. Интерфейсы в C# (3 ак. ч.)
Концепция интерфейсов.
Объявление интерфейса.
Реализация интерфейса.
Интерфейсы в C# 8.0
Итераторы в .Net Framework.
Разработка альтернативных итераторов для вывода массива объектов.
Модуль 10. Потоки данных в .Net Framework (3 ак. ч.)
Обзор классов потоков.
Работа с байтовыми потоками.
Работа с потоками символов.
Сериализация объектов в C#.
Модуль 11. Коллекции в .Net Framework (3 ак. ч.)
Обзор классов коллекций.
Концепция параметризованных типов данных.
Ключевое слово default и ограничения для параметризованных типов.
Обзор параметризованных коллекций.
Работа с данными в приложении Геометрия.
Модуль 12. Перегрузка операций в C# (3 ак. ч.)
Перегрузка унарных операций.
Перегрузка бинарных операций.
Перегрузка операции индексации.
Перегрузка операции преобразования типа.
Расширяющие методы для классов и интерфейсов.
Модуль 13. Делегаты и события в C# (3 ак. ч.)
Создание и работа с делегатами.
Классы Action и Func.
Анонимные методы.
Лямбда выражения.
События.
Асинхронный вызов метода.
Модуль 14. Расширенные возможности C# (3 ак. ч.)
Атрибуты.
Сборка мусора и освобождение ресурсов.
Работа с динамическими типами.
Асинхронное программирование.
LINQ.
Реализация асинхронного паттерна.