- •Лекция 2. С# и объектно-ориентированное программирование Формальное определение класса в с#
- •Ссылки на самого себя
- •Определение открытого интерфейса по умолчанию
- •Указание области видимости на уровне типа: открытые и внутренние типы
- •Столпы объектно-ориентированного программирования
- •Инкапсуляция
- •Наследование: отношения «быть» и «иметь»
- •Полиморфизм: классический и для конкретного случая
- •Средства инкапсуляции в с#
- •Реализация инкапсуляции при помощи традиционных методов доступа и изменения
- •Второй способ инкапсуляции: применение свойств класса
- •Поддержка наследования в с#
- •Применение модели включения-делегирования
- •Поддержка полиморфизма в с#
- •Абстрактные классы
- •Принудительный полиморфизм: абстрактные методы
- •Приведение типов в с#
- •Приведение числовых типов
- •Обработка исключений
- •Жизненный цикл объектов
- •Завершение ссылки на объект
- •Интерфейс iDisposable
- •Взаимодействие со сборщиком мусора
Взаимодействие со сборщиком мусора
Как и все в мире .NET, сборщик мусора — это объект, и мы можем обращаться к нему через ссылку на объект. Для работы со сборщиком мусора в С# предназначен :пециальный класс — System.GC (от garbage collector — сборщик мусора). Этот класс эпределен как sealed, то есть производить от него другие классы при помощи наследования невозможно. В System.GC определен небольшой набор статических членов, при помощи которых и осуществляется взаимодействие со сборщиком мусо-эа. Самые важные из этих членов представлены в табл. 3.2.
Обратите внимание, что этот вариант класса Саг поддерживает как деструктор С#, так и интерфейс IDisposable. Метод Dispose( ) определен таким образом, чтс при его выполнении происходит вызов метода GC.SupressFinalize( ). Таким образом, мы сообщаем системе, что деструктор для данного объекта вызывать уже не нужно — все ресурсы будут освобождены при помощи метода Dispose( ).