Язык программирования C#9 и платформа .NET5
Шрифт:
Ключевое слово sizeof
Резюме
Глава 12
Понятие типа делегата
Определение типа делегата в C#
Базовые классы System.MulticastDelegate и System.Delegate
Пример простейшего делегата
Исследование объекта делегата
Отправка уведомлений о состоянии объекта
Включение группового вызова
Удаление целей из списка вызовов делегата
Синтаксис групповых преобразований методов
Понятие обобщенных делегатов
Обобщенные делегаты Action<> и Func<>
Понятие событий C#
Ключевое слово event
"За кулисами" событий
Прослушивание входящих событий
Упрощение регистрации событий с использованием Visual Studio
Создание специальных аргументов событий
Обобщенный делегат EventHandler<T>
Понятие анонимных методов C#
Доступ к локальным переменным
Использование ключевого слова static с анонимными методами (нововведение в версии 9.0)
Использование отбрасывания с анонимными методами (нововведение в версии 9.0)
Понятие лямбда-выражений
Анализ лямбда-выражения
Обработка аргументов внутри множества операторов
Лямбда-выражения с несколькими параметрами и без параметров
Использование ключевого слова static с лямбда-выражениями (нововведение в версии 9.0)
Использование отбрасывания с лямбда-выражениями (нововведение в версии 9.0)
Модернизация примера CarEvents с использованием лямбда-выражений
Лямбда-выражения и члены, сжатые до выражений (обновление в версии 7.0)
Резюме
Глава 13
Программные конструкции, специфичные для LINQ
Неявная типизация локальных переменных
Синтаксис инициализации объектов и коллекций
Лямбда-выражения
Расширяющие методы
Анонимные типы
Роль LINQ
Выражения LINQ строго типизированы
Основные сборки LINQ
Применение запросов LINQ к элементарным массивам
Решение с использованием расширяющих методов
Решение без использования LINQ
Выполнение рефлексии результирующего набора LINQ
LINQ и неявно типизированные локальные переменные
LINQ и расширяющие методы
Роль отложенного выполнения
Роль немедленного выполнения
Возвращение результатов запроса LINQ
Возвращение результатов LINQ посредством немедленного выполнения
Применение запросов LINQ к объектам коллекций
Доступ к содержащимся в контейнере подобъектам
Применение запросов LINQ к необобщенным коллекциям
Фильтрация данных с использованием метода OfТуре<Т>
Исследование операций запросов LINQ
Базовый синтаксис выборки
Получение подмножества данных
Проецирование в новые типы данных
Проецирование в другие типы данных
Подсчет количества с использованием класса Enumerable
Изменение порядка следования элементов в результирующих наборах на противоположный
Выражения сортировки
LINQ как лучшее средство построения диаграмм Венна
Устранение дубликатов
Операции агрегирования LINQ
Внутреннее представление операторов запросов LINQ
Построение выражений запросов с применением операций запросов
Построение выражений запросов с использованием типа Enumerable и лямбда-выражений