Методы класса object в C#

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