Цели и задачи дисциплины

Цель дисциплины – освоение объектно-ориентированной технологии разработки прикладного программного обеспечения на языке программирования С#.

Задачами дисциплины является изучение методологии объектно-ориентированного программирования, типов данных и операций языка C#, классов, структур, интерфейсов, обобщений, коллекций, средств управления потоками и синхронизацией при использовании языка программирования С#.

Краткое содержание разделов (тем, модулей)

1. Введение

Задачи и содержание дисциплины. Краткий обзор содержания курса, ознакомление с рекомендуемой литературой и методическими материалами.

2. Объектно-ориентированное программирование и язык C#

Понятие ООП. Принципы ООП. История возникновения платформы  .NET и языка C#. Особенности платформы  .NET и языка C#. Особенности платформы .NET.  Структура приложений  на языке C#. Технология разработки программного обеспечения на языке C#.

3. Типы данных  и операции С#

Типы по ссылке и по значению в C#. Стандартные числовые типы данных. Строки. Перечисления. Массивы. Многомерные массивы. Свойства. Индексаторы. Делегаты. События. Константные и readonly поля.  Приведение типов в C#. Стандартные операции. Приоритеты операций. Операторы цикла, условные операторы, операторы перехода.

4. Классы и структуры в C#

Понятие класса. Определение пользовательских классов в C#. Управление доступом в C#. Члены класса. Наследование в языке С#. Структуры. Статические классы. Частичные классы. Класс System.Object. Обобщения в C#.

5. Управление объектами классов и структур

Инициализация объектов. Конструкторы. Статические конструкторы. Операция new. Деструкторы. Перегрузка конструкторов. Вызов конструкторов базовых классов. Уничтожение объектов. Метод Finalize. Метод  Dispose. Оператор using и интерфейс IDisposable.

6. Виртуальные методы и интерфейсы

Особенности виртуальных методов. Модификаторы virtual и override. Абстрактные классы и методы. Запечатанные классы и методы. Интерфейсы. Использование виртуальных методов и интерфейсов в технологии объектно-ориентированного программирования.

7. Перегрузка методов и операций

Перегрузка методов в C#. Перегрузка операций в C#. Определяемые пользователем приведения типов в C#. Модификаторы imlicit и explicit.

8. Управление потоками и обработка исключительных ситуаций

Использование класса Thread для управления потоками. Синхронизация. Оператор lock. Классы Monitor и Interlocked. Обработка исключительных ситуаций. Классы исключительных ситуаций.