Глава 5. Цикл существования объектов
В этой главе выясняется, как в рамках CLR с помощью сборщика мусора .NET организовано управление памятью. В этой связи вы узнаете о роли корней приложения, генераций объектов и типа System.GC. После изучения базовых вопросов в оставшейся части главы будут рассмотрены тема объектов, предусматривающих освобождение ресурсов (через интерфейс IDisposable), и процесс финализации (реализуемый с помощью метода System.Object.Finalize()).
Глава 6. Структурированная обработка исключений
В этой главе обсуждается структурированный подход к обработке исключений (т.е. исключительных ситуаций), которые могут возникать в среде выполнения. Вы узнаете о ключевых словах языка C# (try, catch, throw и finally), которые позволяют решать соответствующие проблемы, а также выясните разницу между исключениями системного уровня и уровня приложения. Дополнительно в главе обсуждаются специальные средства Visual Studio 2005, призванные упростить задачу выявления и обработки исключений, ускользнувших от вашего внимания.
Глава 7. Интерфейсы и коллекции
Материал этой главы опирается на понимание принципов разработки приложений с использованием объектов и охватывает вопросы программирования на базе интерфейсов. Вы узнаете, как определить типы, поддерживающие множество элементов поведения, как найти эти элементы поведения во время выполнения и как выборочно скрыть такие элементы поведения, используя
Глава 8. Интерфейсы обратного вызова, делегаты и события
Цель главы 8 заключается в разъяснении типа делегата. Упрощенно говоря, делегат .NET – это шаблон, "указывающий" на методы в приложении. С помощью такого шаблона вы получаете возможность строить системы, в которых множество объектов могут быть связаны двусторонним обменом- После выяснения возможностей использования делегатов.NET (включая множество возможностей, появившихся с версией 2.0, – например, анонимные методы) в главе рассматривается ключевое слово C# event, которое используется для того, чтобы упростить процесс программирования с помощью делегатов.
Глава 9. Специальные приемы построения типов
Эта глава позволит вам глубже понять возможности языка программирования C# путем изучения более совершенных методов программирования. Вы узнаете, как использовать перегрузку операций и создавать пользовательские программы преобразования (явного или неявного), как строить индексаторы типов и работать c указателями C-типа в файле *.cs.
Глава 10. Обобщения
В свази с разработкой .NET 2.0 язык программирования C# был расширен с целью поддержки новой возможности CTS, связанной с так называемыми
В этой части рассматривается формат компоновочных блоков .NET. Вы узнаете, как развернуть и сконфигурировать библиотеки программного кода .NET, и выясните внутреннюю структуру бинарного образа .NET. В этой же части объясняется роль атрибутов .NET и конструкция многопоточных приложений. В последних главах этой части рассматриваются низкоуровневые вопросы [такие как, например, объектный контекст), а также синтаксис и семантика CIL.
Глава 11. Компоновочные блоки .NET
С точки зрения высокоуровневого подхода, компоновочные блоки – это файлы *.dll или *.exe. Но такая интерпретация компоновочных блоков .NET очень далека от "исчерпывающей". Вы узнаете, чем отличаются одномодульные и многомодульные компоновочные блоки и как строятся и инсталлируются такие объекты. Вы научитесь конфигурировать приватные и общедоступные компоновочные блоки, используя для этого XML-файлы *.config и компоновочные блоки политики поставщика. По ходу дела будут выяснены внутренняя структура GAC (Global Assembly Cache – глобальный кэш компоновочных блоков) и роль утилиты конфигурации .NET Framework 2.0.
Глава 12. Отображение типов, динамическое связывание и программирование с помощью атрибутов