Для проектов с неуправляемым кодом особое значение имеют два следующих метода из классаGC: AddMemoryPressure() иRemoveMemoryPressure(). С их помощью указывается большой объем неуправляемой памяти, выделяемой или освобождаемой в программе. Особое значение этих методов состоит в том, что система управления памятью не контролирует область неуправляемой памяти. Если программа выделяет большой объем неуправляемой памяти, то это может сказаться на производительности, поскольку системе ничего неизвестно о таком сокращении объема свободно доступной памяти. Если же большой объем неуправляемой памяти выделяется с помощью методаAddMemoryPressure(), то система CLR уведомляется о сокращении объема свободно доступной памяти. А если выделенная область памяти освобождается с помощью методаRemoveMemoryPressure(), то система CLR уведомляется о соответствующем восстановлении объема свободно доступной памяти. Следует, однако, иметь в виду, что методRemoveMemoryPressure() необходимо вызывать только для уведомления об освобождении области неуправляемой памяти, выделенной с помощью методаAddMemoryPressure().

Класс object

В основу типаobjectв C# положен классobject.Члены классаObjectподробно рассматривались в главе 11, но поскольку он играет главную роль в С#, то его методы ради удобства повторно перечисляются в табл. 21.16. В классеobjectопределен конструктор

public Object()

который создает пустой объект.

Таблица 21.16. Методы, определенные в классе Object

Метод

Назначение

public virtual bool

Возвращает логическое значение true, если вы

Equals(objectobj)

зывающий объект оказывается таким же, как и объект, определяемый параметром obj. В противном случае возвращается значение false

public static bool Equals(object

Возвращает логическое значение true, если

obj A,objectobjB)

объект obj А оказывается таким же, как и объект objB. В противном случае возвращается значение false

protected Finalize()

Выполняет завершающие действия перед процессом “сборки мусора”. В C# метод Finalize () доступен через деструктор

public virtual int

Возвращает хеш-код, связанный с вызывающим

GetHashCode()

объектом

public Type GetTypeO

Получает тип объекта во время выполнения программы

protected object

Создает “неполную” копию объекта. При этом ко

MemberwiseClone()

пируются члены, но не объекты, на которые ссылаются эти члены

public static bool

Возвращает логическое значение true, если

ReferenceEquals(objectobjA,

объекты obj А и objB ссылаются на один и тот

objectobjB)

же объект. В противном случае возвращается логическое значение false

public virtual string

Возвращает строку, описывающую объект

ToString()

Класс Tuple

Перейти на страницу:

Похожие книги