Для проектов с неуправляемым кодом особое значение имеют два следующих метода из класса
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(object
зывающий объект оказывается таким же, как и объект, определяемый параметром
public static bool Equals(object
Возвращает логическое значение true,
еслиобъект
protected Finalize()
Выполняет завершающие действия перед процессом “сборки мусора”. В C# метод Finalize ()
доступен через деструкторpublic virtual int
Возвращает хеш-код, связанный с вызывающим
GetHashCode()
объектом
public Type GetTypeO
Получает тип объекта во время выполнения программы
protected object
Создает “неполную” копию объекта. При этом ко
MemberwiseClone()
пируются члены, но не объекты, на которые ссылаются эти члены
public static bool
Возвращает логическое значение true,
еслиReferenceEquals(object
объекты
object
же объект. В противном случае возвращается логическое значение false
public virtual string
Возвращает строку, описывающую объект
ToString()
Класс Tuple