object — это базовый класс для всех типов в C#. Он определяет несколько методов, которые могут быть переопределены в производных классах.
Основные методы класса object
| Метод | Описание |
|---|---|
Equals(object obj) | Определяет, равен ли текущий объект другому объекту. |
GetHashCode() | Возвращает хеш-код объекта. |
GetType() | Возвращает объект Type, представляющий текущий тип объекта. |
ToString() | Возвращает строковое представление объекта. |
Использование методов
ToString()
По умолчанию метод ToString() возвращает полное имя типа:
using System;
class Program
{
static void Main()
{
object obj = new Program();
Console.WriteLine(obj.ToString()); // Program
}
}Equals()
Метод Equals() сравнивает объекты на равенство:
using System;
class Program
{
static void Main()
{
object obj1 = new object();
object obj2 = obj1;
object obj3 = new object();
Console.WriteLine(obj1.Equals(obj2)); // True
Console.WriteLine(obj1.Equals(obj3)); // False
}
}GetType()
Метод GetType() возвращает информацию о типе объекта:
using System;
class Program
{
static void Main()
{
int number = 42;
Console.WriteLine(number.GetType()); // System.Int32
}
}GetHashCode()
Метод GetHashCode() возвращает целочисленное значение, которое можно использовать, например, в хеш-таблицах:
using System;
class Program
{
static void Main()
{
object obj = new object();
Console.WriteLine(obj.GetHashCode());
}
}Переопределение методов класса object
Методы Equals(), GetHashCode() и ToString() часто переопределяются в пользовательских классах для более точного поведения:
using System;
class Person
{
public string Name { get; set; }
public override string ToString()
{
return $"Person: {Name}";
}
}
class Program
{
static void Main()
{
Person person = new Person { Name = "Alice" };
Console.WriteLine(person.ToString()); // Person: Alice
}
}Переопределение Equals() и GetHashCode() используется для корректного сравнения объектов.