Глава 4. Главные конструкции программирования на С#; часть 2
В этой главе завершается исследование ключевых аспектов С#, начиная с создания и манипулирования массивами данных. Затем вы узнаете, как конструировать перегруженные методы типов и определять параметры с применением ключевых слов out
, ref
и params
. Также вы изучите типы перечислений, структуры и типы, допускающие null
, плюс уясните отличие между типами значений и ссылочными типами. Наконец, вы освоите кортежи — средство, появившееся в C# 7 и обновленное в C# 8.
Часть III. Объектно-ориентированное программирование на C#
В этой части вы изучите основные конструкции языка С#, включая детали объектно-ориентированного программирования. Здесь вы научитесь обрабатывать исключения времени выполнения и взаимодействовать со строго типизированными интерфейсами. Вы также узнаете о времени существования объектов и сборке мусора.
Гпава 5. Инкапсуляция
В этой главе начинается рассмотрение концепций объектно-ориентированного программирования (ООП) на языке С#. После представления главных принципов ООП (инкапсуляции, наследования и полиморфизма) будет показано, как строить надежные типы классов с использованием конструкторов, свойств, статических членов, констант и полей только для чтения. Вы также узнаете об определениях частичных типов, синтаксисе инициализации объектов и автоматических свойств, а в заключение главы будут рассматриваться типы записей, появившиеся в C# 9.0.
Глава 6. Наследование и полиморфизм
Здесь вы ознакомитесь с оставшимися главными принципами ООП (наследованием и полиморфизмом), которые позволяют создавать семейства связанных типов классов. Вы узнаете о роли виртуальных и абстрактных методов (и абстрактных базовых классов), а также о природе полиморфных интерфейсов. Затем вы исследуете сопоставление с образцом посредством ключевого слова is
ив заключение выясните роль первичного базового класса платформы .NET Core — System.Object
.
Глава 7. Структурированная обработка исключений
В этой главе обсуждаются способы обработки в кодовой базе аномалий, возникающих во время выполнения, за счет использования структурированной обработки исключений. Вы узнаете не только о ключевых словах С#, которые дают возможность решать такие задачи (try
, catch
, throw
, when
и finally
), но и о разнице между исключениями уровня приложения и уровня системы. Вдобавок в главе будет показано, как настроить инструмент Visual Studio на прерывание для всех исключений, чтобы отлаживать исключения, оставшиеся без внимания.
Глава 8. Работа с интерфейсами
Материал этой главы опирается на ваше понимание объектно-ориентированной разработки и посвящен программированию на основе интерфейсов. Здесь вы узнаете, каким образом определять классы и структуры, поддерживающие несколько линий поведения, обнаруживать такие линии поведения во время выполнения и выборочно скрывать какие-то из них с применением явной реализации интерфейсов. В дополнение к созданию специальных интерфейсов вы научитесь реализовывать стандартные интерфейсы, доступные внутри платформы .NET Core, и использовать их для построения объектов, которые могут сортироваться, копироваться, перечисляться и сравниваться.
Глава 9. Время существования объектов
В финальной главе этой части исследуется управление памятью средой .NET Runtime с использованием сборщика мусора .NET Core. Вы узнаете о роли корневых элементов приложения, поколений объектов и типа System.GC
. После представления основ будут рассматриваться темы освобождаемых объектов (реализующих интерфейс IDisposable
) и процесса финализации (с применением метода System.Object.Finalize()
). В главе также описан класс Lazy<T>
, позволяющий определять данные, которые не будут размещаться в памяти вплоть до поступления запроса со стороны вызывающего кода. Вы увидите, что такая возможность очень полезна, когда нежелательно загромождать кучу объектами, которые в действительности программе не нужны.