Язык программирования C#9 и платформа .NET5
Шрифт:
Ограничение параметров типа
Примеры использования ключевого слова where
Отсутствие ограничений операций
Резюме
Глава 11
Понятие индексаторных методов
Индексация данных с использованием строковых значений
Перегрузка индексаторных методов
Определения индексаторов в интерфейсных типах
Понятие перегрузки операций
Перегрузка бинарных операций
А как насчет операций += и -=?
Перегрузка унарных операций
Перегрузка операций эквивалентности
Перегрузка операций сравнения
Финальные соображения относительно перегрузки операций
Понятие специальных преобразований типов
Повторение: числовые преобразования
Повторение: преобразования между связанными типами классов
Создание специальных процедур преобразования
Дополнительные явные преобразования для типа Square
Определение процедур неявного преобразования
Понятие расширяющих методов
Определение расширяющих методов
Вызов расширяющих методов
Импортирование расширяющих методов
Расширение типов, реализующих специфичные интерфейсы
Поддержка расширяющего метода GetEnumerator (нововведение в версии 9.0)
Понятие анонимных типов
Определение анонимного типа
Внутреннее представление анонимных типов
Реализация методов ToString и GetHashCode
Семантика эквивалентности анонимных типов
Анонимные типы, содержащие другие анонимные типы
Работа с типами указателей
Ключевое слово unsafe
Работа с операциями * и &
Небезопасная (и безопасная) функция обмена
Доступ к полям через указатели (операция ->)
Ключевое слово stackalloc
Закрепление типа посредством ключевого слова fixed
Ключевое слово sizeof
Резюме
Глава 12
Понятие типа делегата
Определение типа делегата в C#
Базовые классы System.MulticastDelegate и System.Delegate
Пример простейшего делегата
Исследование объекта делегата
Отправка уведомлений о состоянии объекта с использованием делегатов
Включение группового вызова
Удаление целей из списка вызовов делегата
Синтаксис групповых преобразований методов
Понятие обобщенных делегатов
Обобщенные делегаты Action<> и Func<>
Понятие событий C#
Ключевое слово event
"За кулисами" событий
Прослушивание входящих событий
Упрощение регистрации событий с использованием Visual Studio
Создание специальных аргументов событий
Обобщенный делегат EventHandler<T>
Понятие анонимных методов C#
Доступ к локальным переменным
Использование ключевого слова static с анонимными методами (нововведение в версии 9.0)
Использование отбрасывания с анонимными методами (нововведение в версии 9.0)
Понятие лямбда-выражений
Анализ лямбда-выражения