C#
Теория
- 1. C#. Общие сведения
- 2. Составляющие C#. Элементы языка. Типы данных. Ключевые слова. Литералы
- 2.1. Ключевые слова C#
- 2.2. Категории (группы) типов данных в C#. Значимые типы. Ссылочные типы
- 2.3. Базовые типы данных языка C#
- 2.4. Литералы
- 2.5. Переменные и константы. Инициализация переменной. Динамическая инициализация. Неявно-типизированные переменные
- 2.6. Тип string
- 2.7. Символьный тип данных char. Структура System.Char. Методы структуры System.Char
- 2.8. Значение null. Типы данных, допускающие значение null. Операции ?, ??
- 3. Операции
- 4. Управляющие операторы
- 4.1. Оператор условного перехода if. Полная и сокращенная формы. Конструкция if-else-if
- 4.2. Оператор выбора switch. Вложенные операторы switch
- 4.3. Оператор цикла while. Примеры
- 4.4. Оператор цикла for. Примеры
- 4.5. Оператор цикла do-while. Примеры
- 4.6. Оператор цикла foreach. Примеры
- 4.7. Операторы break, continue, goto
- 5. Массивы
- 5.1. Одномерные массивы. Примеры решения задач на одномерные массивы. Массивы структур. Массивы классов. Инициализация массивов
- 5.2. Многомерные массивы. Ступенчатые массивы. Инициализация многомерных массивов
- 5.3. Ссылки на массивы. Свойство Length. Присваивание массивов
- 5.4. Неявно типизированные массивы. Ключевое слово var
- 5.5. Массивы строк. Примеры решения наиболее распростнаненных задач
- 6. Структуры. Перечисления
- 6.1. Структуры. Общие понятия. Тип структуры. Структурная переменная. Модификаторы доступа к структурной переменной. Примеры использования структур в программе
- 6.2. Структуры и методы. Инициализация структур. Конструкторы в структурах. Свойства в структурах
- 6.3. Использование массивов в структурах. Массивы структур. Вложенные структуры. Копирование структур
- 6.4. Перечисления
- 7. Индексаторы. Свойства
- 8. Интерфейсы. Использование интерфейсов в C#
- 9. Классы
- 9.1. Общие понятия. Объекты. Данные и методы класса
- 9.1.1. Понятие класса. Общая форма объявления класса. Объект класса. Поля класса. Примеры. Ключевое слово this
- 9.1.2. Константные поля в классах. Ключевые слова const, readonly
- 9.1.3. Ключевое слово this. Назначение. Случаи применения this в классах. Примеры
- 9.1.4. Инициализация в классах. Способы инициализации. Инициализация переменных базовых типов. Инициализаторы объектов
- 9.2. Специальные функции класса
- 9.3. Динамическое выделение памяти. Оператор new. Выделение памяти для типов-значений, структур, перечислений, объектов классов. Выделение памяти для массивов
- 9.4. Методы в классах
- 9.4.1. Понятие метода. Примеры методов в классах. Возврат из метода. Оператор return. Методы без параметров. Ключевое слово void
- 9.4.2. Передача параметров в методы
- 1. Передача параметров в метод. Аргументы и формальные параметры. Примеры. Передача ссылки на объект класса в метод
- 2. Модификаторы параметров ref и out. Примеры. Отличия между модификаторами ref и out
- 3. Переменное количество аргументов в методах. Модификатор params. Преимущества. Примеры методов с переменным количеством аргументов
- 4. Передача массивов в методы по значению. Примеры. Передача массивов структур, классов, перечислений. Передача двумерных массивов в методы. Возврат массива из метода
- 5. Передача в методы одномерных и многомерных массивов экземпляров класса как ref и out параметров
- 6. Необязательные аргументы. Преимущества. Примеры применения необязательных аргументов. «Неоднозначность» в необязательных аргументах
- 7. Именованные аргументы. Преимущества. Примеры
- 9.4.3. Перегрузка методов в классах. Примеры. Преимущества. Перегрузка конструкторов
- 9.4.4. Рекурсия. Примеры рекурсивных методов (функций)
- 9.4.5. Метод Main(). Способы объявления. Передача аргументов в Main()
- 9.5. Инкапсуляция в классах. Ключевые слова private, protected, public, internal
- 9.6. Статические классы, методы, переменные. Статические конструкторы. Ключевое слово static
- 9.7. Вложенные классы. Вложенные статические классы. Объявление и использование вложенных классов. Примеры
- 9.1. Общие понятия. Объекты. Данные и методы класса
- 10. Отношения между классами
- 11. Наследование. Полиморфизм. Абстрактные классы
- 11.1. Наследование. Базовые понятия. Преимущества и недостатки. Общая форма. Простейшие примеры. Модификатор доступа protected
- 11.2. Использование конструкторов в классах при наследовании. Ключевое слово base при наследовании
- 11.3. Доступ к элементам базового класса из унаследованного класса. Ключевые слова base, new. Примеры
- 11.4. Примеры создания иерархий классов с использованием наследования
- 11.5. Полиморфизм
- 11.5.1. Особенности применения ссылки на базовый класс. Ключевые слова as, is. Вызов методов с одинаковыми именами в ирерархиях наследования
- 11.5.2. Пример доступа к методам и свойствам унаследованных классов с помощью ссылки на базовый класс
- 11.5.3. Позднее и раннее связывание. Полиморфизм. Основные понятия. Примеры. Передача в метод ссылки на базовый класс. Ключевые слова virtual, override, new
- 11.6. Абстрактные классы
- 11.7. Запрет наследования. Ключевое слово sealed. Особенности применения
- 12. Перегрузка операторов
- 12.1. Перегрузка операторов. Общие сведения. Перегрузка унарных операторов. –, !, ++, ––
- 12.2. Перегрузка бинарных операторов. Перегрузка операторов +, –, *, /, %. Вложение произвольной логики при перегрузке
- 12.3. Перегрузка операторов сравнения ==, !=, <, >, <=, >=. Перегрузка логических побитовых операторов
- 12.4. Перегрузка оператора приведения типа (). Перегрузка операторов true, false. Перегрузка логических операторов &&, ||
- 14. Делегаты
- 14.1. Понятие делегата. Объявление типа делегата. Использование делегата в программе. Групповое преобразование методов
- 14.2. Использование делегатов, которые ссылаются на методы экземпляра класса
- 14.3. Делегаты. Групповая адресация. Создание цепочек вызовов методов
- 14.4. Анонимные функции. Анонимные методы. Возврат значения. Передача параметров
- 14.5. Примеры передачи массивов, структур, классов анонимному методу
- 15. Лямбда-выражения
- 16. События
- 17. Средства ввода/вывода. Потоки
- 17.1. Понятие потока. Архитектура потоков в C#. Потоки с опорными хранилищами. Потоки с декораторами. Адаптеры потоков
- 17.2. Класс Stream
- 17.3. Потоки с опорными хранилищами
- 17.5. Адаптеры потоков
- 17.5.1. Классы StreamReader, StreamWriter
- 17.5.2. Классы BinaryReader, BinaryWriter
- 18. Обобщения
- 18.1. Обобщения. Основные понятия. Обобщенные классы и структуры
- 18.2. Обобщенные интерфейсы. Синтаксис объявления. Реализация обобщенных интерфейсов в классах. Примеры
- 18.3. Обобщенные методы в классах. Синтаксис объявления. Способы вызова
- 18.4. Обобщенные делегаты
- 18.5. Упаковка и распаковка. Необходимость применения обобщений
- 18.6. Ограниченные типы в обобщениях
- 18.7. Сравнение экземпляров обобщенных типов. Интерфейсы IComparable<T> и IEquatable<T>
- 18.8. Применение обобщений при наследовании и полиморфизме
- 18.9. Иерархии обобщенных типов. Ковариантность. Контравариантность
- 20. Рефлексия, динамически загружаемые сборки, позднее связывание
- 20.1. Динамическая идентификация типов. Операторы is, as. Примеры
- 20.2. Рефлексия типов. Получение метаданных типа. Пространство имен System.Reflection. Класс System.Type. Способы получения информации о типе. Оператор typeof
- 20.3. Примеры получения информации о методах, интерфейсах, классах, структурах, перечислениях, делегатах, полях типов, статистических данных о типах
- 20.4. Динамически загружаемые сборки. Класс Assembly. методы Load() и LoadFrom()
- 20.5. Позднее связывание. Вызов метода. Класс System.Activator. Метод Invoke()
- 20.6. Примеры применения рефлексии на основе позднего связывания
- 21. Атрибуты
- II. Библиотека C#
- III. Элементы управления (шаблон Windows Forms Application)
- IV. ADO .NET
- 1. Общие сведения
- 2. Присоединенный режим (connected mode)
Практика
- Microsoft Visual Studio 2017 — 2019
- Шаблон Console App (.NET Framework)
- 001 — Пример создания Unit-теста в Microsoft Visual Studio 2017
- 002 — Пример разработки программы, которая размещается в разных файлах. Реализация наследования в классах. Средства Visual Studio 2019 разбивки программы на части
- 003 – Разработка обобщенного класса, реализующего алгоритм линейного поиска
- 004 – Разработка обобщенного класса, реализующего алгоритм сортировки выбором
- 005 — Примеры применения класса FileStream без использования дополнительных потоков (адаптеров, декораторов)
- Шаблон Windows Forms
- 001 — Создание пятиугольной формы
- 004 — Пример разработки унаследованной формы
- 005 — Компонент Label. Программное создание элемента управления Label. Класс MessageBox. Перечисление DialogResult
- 006 — Компонент Button. Взаимодействие компонент Label и Button. Событие MouseMove
- 007 — События MouseDown, MouseUp. Программное формирование компонента Label на форме
- 009 — Пример создания немодальной формы. Модальные и немодальные окна
- 016 — Создание документа для печати. Элементы управления PrintDocument, PageSetupDialog, PrintDialog, PrintPreviewDialog
- 017 — Разработка программы демонстрации работы с потоками выполнения. Элемент управления BackgroundWorker. Сортировка массива в потоках алгоритмами пузырька, вставки, выбором
- Шаблон Console App (.NET Framework)
- Microsoft Visual Studio 2010
- Шаблон Windows Forms Application
- 001 — Создание приложения Windows Forms Application в MS Visual Studio 2010.
- 002 — Вывод таблицы базы данных Microsoft Access в компоненте dataGridView.
- 003 — Пример подключения базы данных Microsoft Access к приложению MS Visual Studio
- 004 — Перевод базы данных Microsoft Access в формат Microsoft SQL Server.
- 005 — Пример программирования события в C#. Разработка программы для определения площади поверхности шара.
- 006 — Пример создания и вызова новой формы приложения в C#.
- 007 — Пример создания Web-приложения в MS Visual Studio — C#.
- 008 — Пример создания меню в C#. Элемент управления menuStrip
- 009 — C#. Курсовая. Разработка приложения автоматизации диспетчера касс автовокзала.
- 010 — C#. Пример создания приложения копирования файлов. Класс FileStream.
- 011 — C# — Пример создания двумерной матрицы на форме. Аналог компонента TStringGrid в Delphi.
- 012 — C# — Разработка программы чтения и записи текстовых файлов. Классы StreamWriter и StreamReader.
- 013 — Разработка программы рисования графика функции двух переменных z = f(x, y) или 3D-графика.
- 014 — Пример программы демонстрации основных операций над данными таблицы базы данных MS SQL Server (SQLEXPRESS).
- 015 — Управление отображением текущего времени в программе. Демонстрация компонента Timer.
- 016 — Пример разработки приложения демонстрации работы списков и ассоциативных массивов. Классы Dictionary, List, StreamReader.
- 017 — Реализация концепций «наследования» и «полиморфизма» в объектно-ориентированном программировании на примере создания двух классов. Интерфейсы ICloneable, IEquatable.
- 018 — Разработка программы демонстрации использования запросов на языке LINQ
- 019 — C# + Базы данных. Пример создания отчета (Report) в локальной базе данных, которая размещена в *.mdf-файле. База данных типа Microsoft SQL Server
- 020 — Курсовая работа. Разработка программы мониторинга загрязнения окружающей среды
- 021 — Пример решения задачи, вычисляющей характеристики геометрических фигур с использованием делегатов
- 022 — Пример использования делегата для вызова анонимного метода. Разработка программы вычисления площади треугольника по формуле Герона
- 023 — Пример создания отчета в приложении. Элемент управления Report Viewer. База данных Microsoft Access
- 024 — Разработка программы демонстрации работы элемента управления DataGridView
- 025 – Курсовая работа. Разработка программы ведения учета материальных средств. База данных Microsoft Access
- 026 – Пример создания Unit-теста в Microsoft Visual Studio 2010
- 028 – Решение задачи об N ферзях. Курсовая работа
- Шаблон WPF Application
- Шаблон ASP .NET Web Application
- Распределенные приложения
- Шаблон Windows Forms Application
Решение задач
- Одномерные массивы. Циклы for, while, do..while
- Одномерные массивы. Циклы for, while, do..while в объединении с оператором условного перехода if
- Рекурсия. Примеры решения задач
- Пример решения задач, использующих статические данные и методы в классе
- Текстовые файлы. Решение задач на модификацию текстовых файлов. Классы File, StreamReader, StreamWriter
⇑