Оператор == (справочник по C#)

Обновлен: Ноябрь 2007

Для предопределенных типов значений оператор равенства (==) возвращает значение true, если значения его операндов совпадают, в противном случае — значение false. Для ссылочных типов, отличных от string, оператор == возвращает значение true, если оба его операнда ссылаются на один и тот же объект. Для типа string оператор == сравнивает значения строк.

Заметки

Типы значений, определенные пользователем, могут вызвать перегрузку оператора == (см. раздел оператор). Ее могут вызвать и пользовательские ссылочные типы, хотя по умолчанию оператор == работает в соответствии с приведенным выше описанием как для предопределенных, так и пользовательских ссылочных типов. Если оператор == перегружен, то оператор != тоже должен быть перегружен. Операции с целыми типами обычно разрешены в перечислениях.

Пример

class Equality
{
    static void Main()
    {
        // Numeric equality: True
        Console.WriteLine((2 + 2) == 4);

        // Reference equality: different objects, 
        // same boxed value: False.
        object s = 1;
        object t = 1;
        Console.WriteLine(s == t);

        // Define some strings:
        string a = "hello";
        string b = String.Copy(a);
        string c = "hello";

        // Compare string values of a constant and an instance: True
        Console.WriteLine(a == b);

        // Compare string references; 
        // a is a constant but b is an instance: False.
        Console.WriteLine((object)a == (object)b);

        // Compare string references, both constants 
        // have the same value, so string interning
        // points to same reference: True.
        Console.WriteLine((object)a == (object)c);
    }
}
/*
Output:
True
False
True
False
True
*/

См. также

Основные понятия

Руководство по программированию в C#

Ссылки

Операторы C#

Другие ресурсы

Справочник по C#