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()
используется для корректного сравнения объектов.