Оглавление

Введение

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
Диалог выбора имени файла
Вопросы
Задания для самостоятельной работы

Литература