Книги онлайн и без регистрации » Разная литература » Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен

Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 2 3 4 5 6 7 8 9 10 ... 407
Перейти на страницу:
с типами указателей

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

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

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

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

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

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

   Ключевое слово 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 и лямбда-выражений

   Построение выражений запросов с использованием типа Enumerable и анонимных методов

   Построение выражений запросов с использованием типа Enumerable и низкоуровневых делегатов

  Резюме

 Глава 14

  Роль процесса Windows

   Роль потоков

  Взаимодействие с процессами используя платформу .NET Core

   Перечисление выполняющихся процессов

   Исследование конкретного процесса

   Исследование набора потоков процесса

   Исследование набора модулей процесса

   Запуск и останов процессов программным образом

   Управление запуском процесса с использованием класса ProcessStartInfo

   Использование команд операционной системы с классом ProcessStartInfo

  Домены приложений .NET

   Класс System.AppDomain

   Взаимодействие со стандартным доменом приложения

   Перечисление загруженных сборок

  Изоляция сборок с помощью контекстов загрузки приложений

  Итоговые сведения о процессах, доменах приложений и контекстах загрузки

  Резюме

 Глава 15

  Отношения между процессом, доменом приложения, контекстом и потоком

   Сложность, связанная с параллелизмом

   Роль синхронизации потоков

  Пространство имен System.Threading

  Класс System.Threading.Thread

   Получение статистических данных о текущем потоке выполнения

   Свойство Name

   Свойство Priority

  Ручное создание вторичных потоков

   Работа с делегатом ThreadStart

   Работа с делегатом ParametrizedThreadStart

   Класс AutoResetEvent

   Потоки переднего плана и фоновые потоки

  Проблема параллелизма

   Синхронизация с использованием ключевого слова lock языка C#

   Синхронизация с использованием типа System.Threading.Monitor

   Синхронизация с использованием типа System.Threading.Interlocked

  Программирование с использованием обратных вызовов Timer

   Использование автономного отбрасывания (нововведение в версии 7.0)

  Класс ThreadPool

  Параллельное программирование с использованием TPL

   Пространство имен System.Threading.Tasks

   Роль класса Parallel

   Обеспечение параллелизма данных с помощью класса Parallel

   Доступ к элементам пользовательского интерфейса во вторичных потоках

   Класс Task

   Обработка запроса на отмену

   Обеспечение параллелизма задач с помощью класса Parallel

  Запросы Parallel LINQ (PLINQ)

   Создание запроса PLINQ

   Отмена запроса PLINQ

  Асинхронные вызовы с помощью async/await

   Знакомство с ключевыми словами async и await языка C# (обновление в версиях 7.1, 9.0)

   Класс SynchronizationContext и async/await

   Роль метода ConfigureAwait()

   Соглашения об именовании асинхронных методов

   Асинхронные методы, возвращающие void

    Асинхронные методы, возвращающие void и поддерживающие await

    Асинхронные методы, возвращающие void и работающие в стиле "запустил и забыл"

    Асинхронные методы с множеством контекстов await

   Вызов асинхронных методов из неасинхронных методов

   Ожидание с помощью await в блоках catch и finally

   Обобщенные возвращаемые типы в асинхронных методах (нововведение в версии 7.0)

   Локальные функции (нововведение в версии 7.0)

   Отмена операций async/await

   Асинхронные потоки (нововведение в версии 8.0)

   Итоговые сведения о ключевых словах async и await

  

1 2 3 4 5 6 7 8 9 10 ... 407
Перейти на страницу:

Комментарии
Минимальная длина комментария - 20 знаков. В коментария нецензурная лексика и оскорбления ЗАПРЕЩЕНЫ! Уважайте себя и других!
Комментариев еще нет. Хотите быть первым?