Учебник ООП C# 14 / .NET 10
Основы классов
Введение
Классы и объекты
Поля
Методы
Параметры методов
Текущий объект
Несколько объектов
Конструктор
Заполнение полей в конструкторе
Конструктор без параметров
Несколько конструкторов
Параметры по умолчанию
Перенаправление конструктора
Скрытые поля
Скрытые методы
Чтение закрытого поля
Изменение закрытого поля
Краткая запись свойства
Запись только из класса
Начальные значения при создании
Однократная инициализация
Обязательные данные при создании
Объекты в коде
Введение
Объект в переменной
Две переменные и один объект
Массив объектов
Список объектов
Словарь объектов
Передача объекта в метод
Возврат объекта из метода
Объект внутри объекта
Композиция
Делегирование
Вложенный класс
Несколько вызовов подряд
Допустимое отсутствие объекта
Пустое значение в поле
Значения и копирование
Введение
Тип класса и структуры
Копирование struct
Общая ссылка при присваивании
Отдельный экземпляр
Перенос полей как есть
Общая коллекция
Копия через конструктор
Отдельная копия коллекции
Перенос в готовый объект
Статические члены
Введение
Общее поле
Начальное значение
Метод без объекта
Обращение по имени класса
Константа класса
Неизменяемое значение
Счетчик созданных объектов
Генерация идентификаторов
Класс без объектов
Операторы и индексаторы
Введение
Сложение объектов
Вычитание объектов
Смена знака объекта
Сравнение объектов
Увеличение счётчика
Доступ к объекту по индексу
Наследование и полиморфизм
Введение
Класс-потомок
Методы родителя
Методы потомка
Сокрытие метода потомком
Разрешение переопределения
Замена метода в потомке
Вызов метода базы
Конструктор базы
Поле, доступное потомкам
Закрытые члены базы
Запрет переопределения
Запрет наследования
Переменная базового типа
Полиморфный вызов
Проверка типа объекта
Сопоставление типа
Явное приведение
Безопасное приведение объекта
Неудачное приведение
Свое исключение
Абстрактные классы
Введение
Абстрактная база
Метод без реализации
Реализация в потомке
Общий метод базы
Поля и свойства
Конструктор базы
Нельзя создать экземпляр
Список абстрактного типа
Интерфейсы
Введение
Объявление контракта
Реализация интерфейса
Переменная интерфейсного типа
Несколько интерфейсов
Класс и интерфейсы
Наследование интерфейсов
Список интерфейсного типа
Подмена реализации
Зависимость от интерфейса
object, равенство и records
Введение
Общий предок типов
Строковое представление объекта
Ссылочное и смысловое равенство
Смысловое равенство объектов
Сравнение объектов операторами
Объекты в HashSet и Dictionary
Тип-контейнер для данных
Позиционное объявление записи
Сравнение записей по содержимому
Копия с изменением полей
Методы в записи
Перечисления
Введение
Объявление перечисления
Значение перечисления
Сравнение значений
Разбор вариантов
Явный номер
Базовый числовой тип
Приведение к числу
Передача и возврат
Поле класса
Делегаты и события
Введение
Именованный тип колбэка
Ссылка на метод
Вызов через переменную
Собственный и готовый тип
Цепочка вызовов
Сбор и снятие
Риск перезаписи
Защищенный список обработчиков
Оповещение подписчиков
Подписка на событие
Стандартная форма события
Данные в аргументах
Файлы и пространства имен
Введение
Класс в отдельном файле
Несколько файлов сборки
Блочное пространство имен
Вложенное пространство
Пространство на уровне файла
Подключение пространства имен
Полное имя типа
Псевдоним имени
Статический импорт
Видимость внутри сборки
Тип для одного файла
Разделение класса по файлам