Класс Object
из пространства имен System
является базовым для все типов C#. Это значит что все типы явно или неявно наследуются от класса Object
. И, соответственно, получают методы, определенные в этом классе.
Вместо System.Object
в C# допустимо использовать псевдоним этого класса object
, который определен для сокращенной записи имени класса System.Object
.
Экземпляру класса System.Object
может быть присвоен объект любого типа. Нужно иметь в виду что в случае присваивания экземпляру класса System.Object
типов значений происходит их упаковка. Обратная процедура – распаковка – предполагает обратное преобразование, что связано с дополнительным расходом времени.
Методы класса Object
:
Equals( Object )
– Производит сравнение двух объектов. Может быть переопределен в производных классах.ReferenceEquals( Object, Object )
– Статический метод. Проверяет равны ли ссылки на два объекта.Equals( Object, Object )
– Статический метод. Производит сравнение двух объектов.ToString()
– Приводит объект к строке. Может быть переопределен в производных классах.
Вот как метод ToString()
определен в исходниках .net Framework:
public virtual String ToString() { return GetType().ToString(); }
Из этого видно, что метод просто возвращает строку, содержащую название типа объекта. В данном случае это System.Object
.
GetType()
– Возвращает объектType
для заданного объекта.GetHashCode()
– Возвращает хэш-код объекта.MemberwiseClone()
– Производит неглубокое клонирование объекта.Finalize()
– Должен освобождать ресурсы связанные с объектом.
Методы, которые могут быть переопределены в производных классах
Equals( Object )
Finalize()
GetHashCode()
ToString()