Основы типов
Все типы - производные от типа System.Object
//тип неявно производный от System.Object class Employee { ... } // Тип, явно производный от Object class Employee : System.Object { ... }
Благодаря тому, что все типы, в конечном счете, являются производными от System.Object, любой объект любого типа гарантированно имеет минимальный набор методов. Открытые экземплярные методы класса System.Object перечислены в таблице ниже
Отркрытый метод | Описание |
---|---|
Equals | Возвращает true, если два объекта имеют одинаковые значения |
GetHashCode | Возвращает хеш-код для значения данного объекта. Этот метод следует переопределить, если объекты типа используются в качестве ключа хеш-таблиц. Вообще говоря, класс Object выбран для размещения этого метода неудачно, потому что большинство типов не используется в качестве ключей хеш-таблиц; этот метод уместнее было бы определить в интерфейсе |
ToString | По умолчанию возвращает полное имя типа (this.GetType(). FullName). На практике этот метод переопределяют, чтобы он возвращал объект String, содержащий состояние объекта в виде строки. Например, переопределенные методы для таких фундаментальных типов, как Boolean и Int32, возвращают значения объектов в строковом виде. Кроме того, к переопределению метода часто прибегают при отладке: вызов такого метода возвращает строку, содержащую значения полей объекта. Предполагается, что ToString учитывает информацию CultureInfo, связанную с вызывающим потоком. |
GetType | Возвращает экземпляр объекта, производного от Type,который идентифицирует тип объекта, вызвавшего GetType. |
Кроме того, типам, производным от System.Object, доступны некоторые защищенные методы
Защищённый метод | Описание |
---|---|
MemberwiseClone | Этот невиртуальный метод создает новый экземпляр типа и присваивает полям нового объекта соответствующие значения объекта this. Возвращается ссылка на созданный экземпляр |
Finalize | Этот виртуальный метод вызывается, когда уборщик мусора определяет, что объект является мусором, но до возвращения занятой объектом памяти в кучу. В типах, требующих очистки при сборке мусора, следует переопределить этот метод. |