Freigeben über


Operator == (C#-Referenz)

Für vordefinierte Werttypen gibt der Gleichheitsoperator (==) true zurück, wenn die Werte seiner Operanden gleich sind. Andernfalls gibt er false zurück. Für andere Referenztypen als string gibt == dann true zurück, wenn seine zwei Operanden auf dasselbe Objekt verweisen. Beim string-Typ vergleicht == die Werte der Zeichenfolgen.

Hinweise

Benutzerdefinierte Werttypen können den Operator == überladen (siehe operator). Dies ist auch bei benutzerdefinierten Referenztypen möglich, obwohl sich == standardmäßig sowohl bei vordefinierten als auch bei benutzerdefinierten Referenztypen wie oben beschrieben verhält. Wenn == überladen wird, muss auch != überladen werden. Operationen mit Ganzzahltypen sind bei der Enumeration grundsätzlich zulässig.

Beispiel

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
*/

Siehe auch

Referenz

C#-Operatoren

Konzepte

C#-Programmierhandbuch

Weitere Ressourcen

C#-Referenz