Предисловие 29
Глава 1. Введение в С# и .NET 35
Глава 2. Основы языка С# 67
Глава 3. Соэдание типов в яэыке С# 139
Глава 4. Дополнительные средства яэыка С# 211
Глава 5. Обэор .NЕТ 317
Глава 6. Основы .NЕТ 331
Глава 7. Коллекции 407
Глава 8. Запросы LINQ 463
Глава 9. Операции LINQ 517
Глава 10. LINQ to XML 569
Глава 11. Другие технологии XML и JSON 601
Глава 12. Освобождение и сборка мусора 631
Глава 13. Диагностика 659
Глава 14. Параллелизм и асинхронность 683
Глава 15. Потоки данных и ввод-вывод 749
Глава 16. Взаимодействие с сетью 797
Глава 17. Сборки 823
Глава 18. Рефлексия и метаданные 865
Глава 19. Динамическое программирование 921
Глава 20. Криптография 935
Глава 21. Расширенная многопоточность 949
Глава 22. Параллельное программирование 993
Глава 23. Span<T> и МeJDory<T> 1039
Глава 24. Способность к взаимодействию 1051
Глава 25. Регулярные выражения 1077
Предметный указатель 1098
Язык C# 12 представляет собой девятое крупное обновление флагманского языка программирования от Microsoft, позиционирующее C# как язык с невероятной гибкостью и широтой применения. С одной стороны, он предлагает высокоуровневые абстракции, подобные выражениям запросов и асинхронным продолжениям, а с другой стороны, обеспечивает низкоуровневую эффективность через такие конструкции, как специальные типы значений и необязательные указатели.
Платой за развитие становится относительно трудное освоение языка. Несмотря на то что инструменты вроде Microsoft Intelli Sense (и онлайновых справочников) великолепно помогают в работе, они предполагают наличие концептуальных знаний. Настоящая книга предлагает такие знания в сжатой и унифицированной форме, не утомляя беспорядочными и длинными вступлениями.
В книге рассматриваются язык C#, общеязыковая исполняющая среда (Common Language Runtime - CLR) и библиотека базовых классов .NET 8 (Base Class Library - BCL). Такой подход был выбран для того, чтобы оставить место для раскрытия сложных и обширных тем без ущерба в отношении глубины или читабельности. Функциональные возможности, недавно добавленные в C#, специально помечаются, поэтому настоящую книгу можно применять также в качестве справочника по версиям C# 11 и C# 10.
Книга рассчитана на читателей средней и высокой квалификации. Предварительное знание языка C# не обязательно, но необходимо наличие общего опыта программирования. Для начинающих данная книга будет дополнять, но не заменять вводный учебник по программированию.
Эта книга является идеальным дополнением к любой из огромного множества книг, ориентированных на прикладные технологии, такие как ASP.NET Core или Windows Presentation Foundation (WPF). В данной книге подробно рассматриваются язык и платформа .NET, чему обычно в книгах, посвященных прикладным технологиям, уделяется мало внимания (и наоборот).