Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Aktualisiert: November 2007
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
*/