Реализация методов ToString и GetHashCode

Семантика эквивалентности анонимных типов

Анонимные типы, содержащие другие анонимные типы

Работа с типами указателей

Ключевое слово unsafe

Работа с операциями * и &

Небезопасная (и безопасная) функция обмена

Доступ к полям через указатели (операция ->)

Ключевое слово stackalloc

Закрепление типа посредством ключевого слова fixed

Ключевое слово sizeof

Резюме

Глава 12

Понятие типа делегата

Определение типа делегата в C#

Базовые классы System.MulticastDelegate и System.Delegate

Пример простейшего делегата

Исследование объекта делегата

Отправка уведомлений о состоянии объекта с использованием делегатов

Включение группового вызова

Удаление целей из списка вызовов делегата

Синтаксис групповых преобразований методов

Понятие обобщенных делегатов

Обобщенные делегаты Action<> и Func<>

Понятие событий C#

Ключевое слово event

"За кулисами" событий

Прослушивание входящих событий

Упрощение регистрации событий с использованием Visual Studio

Создание специальных аргументов событий

Обобщенный делегат EventHandler

Понятие анонимных методов 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 к необобщенным коллекциям

Перейти на страницу:

Похожие книги