Cовременные объектно-ориентированные технологии программирования

Основы программирования на C#

Информация о курсе

Новый язык программирования Microsoft C# (произносится "си-шарп")- очень мощный и в то же время простой в использовании. Он высоко ценится современными ИТ-специалистами и является хорошим выбором для тех, кто только ступает на путь программирования. В учебном курсе дается подробное описание языка C#. Оно включает рассмотрение встроенных типов данных, управляющих структур языка, процедур, рекурсии, строк, массивов. Основное внимание уделяется классам, структурам, интерфейсам, делегатам, событиям. Особое внимание уделяется изучению отношений между классами – наследованию и встраиванию. Рассматривается среда разработки Visual Studio .Net, классы библиотеки FCL, организация интерфейса в Windows-проектах.
 

Тема

Количество часов

Всего

Теор.

Прак.

1

Язык C# и первые проекты

Создание языка. Его особенности. Решения, проекты, пространства имен. Консольные и Windows-приложения C#, построенные по умолчанию.

4

2

2

2

Система типов языка С#

Общий взгляд. Система типов. Типы-значения и ссылочные типы. Встроенные типы. Сравнение с типами C++. Типы или классы? И типы, и классы! Преобразования переменных в объекты и vice versa. Операции "упаковать" и "распаковать". Преобразования типов. Преобразования внутри арифметического типа. Преобразования строкового типа. Класс Convert и его методы. Проверяемые преобразования. Управление проверкой арифметических преобразований

6

3

3

3

Преобразования типов

Преобразования типов. Преобразования внутри арифметического типа. Преобразования строкового типа. Класс Convert и его методы. Проверяемые преобразования. Управление проверкой арифметических преобразований.

2

1

1

4

Переменные и выражения

Объявление переменных. Синтаксис объявления. Инициализация. Время жизни и область видимости. Где объявляются переменные? Локальные и глобальные переменные. Есть ли глобальные переменные в C#? Константы.

2

1

1

5

Операторы языка C#

Операторы языка C#. Оператор присваивания. Составной оператор. Пустой оператор. Операторы выбора. If-оператор. Switch-оператор. Операторы перехода. Оператор goto. Операторы break, continue. Операторы цикла. For-оператор. Циклы while. Цикл foreach.

6

2

4

6

Массивы языка C#

Общий взгляд на массивы. Сравнение с массивами C++. Почему массивы C# лучше, чем массивы C++. Виды массивов - одномерные, многомерные и изрезанные. Динамические массивы.

6

2

4

7

Регулярные выражения

Регулярные выражения. Пространство RegularExpressions и его классы. Регулярные выражения и языки. Теория регулярных выражений. Практика применения регулярных выражений. Разбор текстов и поиск по образцу. Свойства и методы класса Regex и других классов, связанных с регулярными выражениями. Примеры применения регулярных выражений.

3

1

2

8

Классы

Две роли класса в ООП. Синтаксис описания класса. Поля и методы класса. Конструкторы и деструкторы. Статические поля и методы. Статические конструкторы. Поля только для чтения. Закрытые поля. Стратегии доступа к полям класса. Процедуры свойства. Индексаторы. Примеры.
6 3 3
9

Отношения между классами. Клиенты и наследники

Классы. Отношения между классами. Отношение клиенты - поставщики. Отношение наследования. Единичное наследование. Родители и наследники. Предки и потомки. Что наследуют потомки. Что могут изменить потомки. Одностороннее присваивание. Контроль типов и связывание - статическое и динамическое. Полиморфизм. Проектирование классов. Абстрактные классы. Классы поведения.
6 3 3
10
Интерфейсы. Множественное наследование
Интерфейсы как частный случай класса. Множественное наследование. Проблемы. Множественное наследование интерфейсов. Встроенные интерфейсы. Интерфейсы IComparable, ICloneable, ISerializable. Поверхностное и глубокое клонирование и сериализация. Сохранение и обмен данными.
6 3 3
11
Функциональный тип в C#. Делегаты
Новое слово для старого понятия. Функциональный тип. Функции высших порядков. Вычисление интеграла и сортировка. Два способа взаимодействия частей при построении сложных систем. Функции обратного вызова. Наследование и функциональные типы. Сравнение двух подходов. Класс Delegate. Методы и свойства класса. Операции над делегатами. Комбинирование делегатов. Список вызовов
6 3 3

 12

События
Классы с событиями. Общий взгляд. Класс Sender и классы Receivers. Класс Sender. Как объявляются события? Делегаты и события. Классы с событиями, допускаемые .Net Framework. Класс EventArgs и его потомки. Входные и выходные аргументы события. Класс Receiver. Обработчик события. Встраивание объекта Sender. Связывание обработчика с событием. Отключение обработчика. Взаимодействие объектов sender и receiver. События - поля или процедуры-свойства? Динамическое связывание событий с их обработчиками.
6 3 3
13
Отладка и обработка исключительных ситуаций
Корректность и устойчивость. Cпецификация системы. Корректность и устойчивость программных систем. Исключительные ситуации. Обработка исключительных ситуаций.  Отладка. Создание надежного кода. Искусство отладки. Отладка и инструментальная среда Visual Studio .Net.
6 2 4
14
Финальный проект
6 0 6
  Всего часов 72 30 42