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

   Создание финализируемых и освобождаемых типов

    Формализованный шаблон освобождения

   Ленивое создание объектов

    Настройка процесса создания данных Lazy<>

   Резюме

Часть IV

  Глава 10

   Побудительные причины создания классов коллекций

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

     Иллюстративный пример: работа с ArrayList

    Обзор пространства имен System.Collections.Specialized

   Проблемы, присущие необобщенным коллекциям

    Проблема производительности

    Проблема безопасности в отношении типов

    Первый взгляд на обобщенные коллекции

   Роль параметров обобщенных типов

    Указание параметров типа для обобщенных классов и структур

    Указание параметров типа для обобщенных членов

    Указание параметров типов для обобщенных интерфейсов

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

    Синтаксис инициализации коллекций

    Работа с классом List<T>

    Работа с классом Stack<T>

    Работа с классом Queue<T>

    Работа с классом SortedSet<T>

    Работа с классом Dictionary<TKey,TValue>

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

    Работа с классом ObservableCollection<T>

   Создание специальных обобщенных методов

    Выведение параметров типа

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

    Выражения default вида значений в обобщениях

    Выражения default литерального вида (нововведение в версии 7.1)

    Сопоставление с образцом в обобщениях (нововведение в версии 7.1)

   Ограничение параметров типа

    Примеры использования ключевого слова where

    Отсутствие ограничений операций

   Резюме

  Глава 11

   Понятие индексаторных методов

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

    Перегрузка индексаторных методов

    Многомерные индексаторы

    Определения индексаторов в интерфейсных типах

   Понятие перегрузки операций

    Перегрузка бинарных операций

    А как насчет операций += и -=?

    Перегрузка унарных операций

    Перегрузка операций эквивалентности

    Перегрузка операций сравнения

    Финальные соображения относительно перегрузки операций

   Понятие специальных преобразований типов

    Повторение: числовые преобразования

    Повторение: преобразования между связанными типами классов

    Создание специальных процедур преобразования

    Дополнительные явные преобразования для типа Square

    Определение процедур неявного преобразования

   Понятие расширяющих методов

    Определение расширяющих методов

    Вызов расширяющих методов

    Импортирование расширяющих методов

    Расширение типов, реализующих специфичные интерфейсы

    Поддержка расширяющего метода GetEnumerator() (нововведение в версии 9.0)