Аннотация
Курс состоит из 18-ти логически взаимосвязанных уроков, что позволяет более глубоко изучить синтаксис языка C# и освоить структурный, объектно-ориентированный, функциональный, аспектно-ориентированный и событийно-ориентированный подходы в программировании.
Обучение программированию происходит, начиная с изучения основных понятий и принципов объектно-ориентированного программирования, классов, а также особенностей языка C#, и заканчивая рассмотрением базовых понятий такой технологии, как LINQ и архитектуры платформы .NET.
Аудитория
Курс предназначен для начинающих программистов и тех, кто имеет базовые знания об основах программирования или желает их освоить. «Базовый курс по языку программирования C#» будет полезен также программистам, имеющим опыт разработки приложений на языке C#.
Предварительная подготовка
• Уверенное владение персональным компьютером
• Навыки работы с Visual Studio
• Знание и умение применять основные понятия и конструкций языка C#, такие как переменная, циклы, условные конструкции, методы, массивы
Программа
1. Введение в ООП. Классы и объекты
В модуле рассматривается тема классов и создания их экземпляров. Объясняется назначение и использование свойств, принципы работы с конструкторами. Особое внимание выделено рассмотрению основных парадигм ООП.
2. Классы и объекты. Диаграммы классов
На занятии рассматривается применение частичных классов и методов. Объясняются назначение и использование диаграмм классов, а также демонстрируются примеры связей отношений между классами (ассоциации, агрегации, композиции, реализации, самоассоциации зависимости и т.д.).
3. Наследование и полиморфизм
В модуле рассматривается тема наследования и основные формы полиморфизма. Объясняется назначение и применение модификаторов доступа, виртуальных членов, понятие и использование герметизированных классов, ключевого слова sealed.
4. Абстракция. Абстрактные классы и интерфейсы
В модуле демонстрируются примеры использования и создания абстрактных классов и интерфейсов, их основные отличия.
5. Массивы и индексаторы
В модуле рассматриваются примеры создания и использования массивов. Объясняются принципы создания и использования индексаторов, их переопределение.
6. Статические и вложенные классы
Модуль позволяет понимать работу статических членов, принципы создания и использования статических классов. Объясняется работа расширяющих методов. Раскрывается понятие вложенных классов. Рассматривается паттерн "Одиночка".
7. Структуры и их разновидности
В модуле раскрывается понятие структур и их членов, ключевые особенности работы с ними, а также основные отличия классов от структур.
8. Структуры и их разновидности. Перечисления
В модуле рассматриваются примеры операций упаковки и распаковки. Демонстрируется работа со структурой DateTime и способы получения времени компьютера, форматирование даты и т.д. Объясняется назначение и применение перечислений.
9. Делегаты
Модуль позволяет понимать работу делегатов и лямбда выражений. Рассматриваются примеры комбинирования делегатов, использования анонимных методов.
10. Универсальные шаблоны
Модуль раскрывает понятие обобщений (параметризированных типов), их назначение, примеры использования. Рассматривается ковариантность и контрвариантность обобщений.
11. Ограничения универсальных шаблонов
Модуль позволяет научиться понимать работу универсальных шаблонов, демонстрируются основные ограничения, которые можно использовать для них. Объясняется понятие Nullable типов и операции поглощения.
12. События
В модуле объясняется работа событий и примеры их использования. Рассматривается назначение паттерна MVP и его применение.
13. Потоки
Модуль раскрывает тему многопоточности в С#, использования делегатов ThreadStart и ParameterizedThreadStart, объясняется работа критических секций, как средств синхронизации доступа нескольких потоков к разделяемым ресурсам.
14. Коллекции
В модуле объясняется назначение и использование коллекций, базовых интерфейсов IEnumerable, IEnumerator. Рассматриваются примеры создания пользовательских коллекций, демонстрируется работа оператора yield.
15. Обработка исключений
Модуль позволяет понимать и использовать техники обработки исключительных ситуаций, работу класса Exception и конструкций try - catch - finally.
16. Перегрузка операторов
В этом модуле рассматривается базовый класс object, его использование и применение. Объясняется техника клонирования, а также назначение паттерна «Прототип» и интерфейса ICloneable. Демонстрируются примеры использования техники перегрузки операторов.
17. Анонимные и динамические типы. LINQ
В модуле рассматриваются анонимные и динамические типы, а также примеры их использования. Объясняются механизмы работы LINQ.
18. Пространства имен. Директивы препроцессора
Данный Модуль позволяет научиться создавать динамически связываемые библиотеки, использовать пространства имен. Рассматриваются модификаторы доступа internal и protected internal, их применение. Демонстрируются примеры использования директив препроцессора.