Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.

ValueType.Equals-Methode: (Object)


Veröffentlicht: Oktober 2016

Gibt an, ob diese Instanz und ein angegebenes Objekt gleich sind.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public override bool Equals(
	object obj


Type: System.Object

Das Objekt, das mit der aktuellen Instanz verglichen werden soll.


Type: System.Boolean

true, wenn obj und diese Instanz denselben Typ aufweisen und denselben Wert darstellen, andernfalls false.

The M:System.ValueType.Equals(System.Object) method overrides M:System.Object.Equals(System.Object) and provides the default implementation of value equality for all value types in the .NET Framework.

If none of the fields of the current instance and obj are reference types, the M:System.ValueType.Equals(System.Object) method performs a byte-by-byte comparison of the two objects in memory. Otherwise, it uses reflection to compare the corresponding fields of obj and this instance.


Particularly if your value type contains fields that are reference types, you should override the M:System.ValueType.Equals(System.Object) method. This can improve performance and enable you to more closely represent the meaning of equality for the type.

When you call the M:System.ValueType.Equals(System.Object)method on a wrt structure, it provides the default behavior for value types that don’t override M:System.ValueType.Equals(System.Object). This is part of the support that the .NET Framework provides for the wrt (see .NET Framework Support for Windows Store Apps and Windows Runtime). wrt structures can’t override M:System.ValueType.Equals(System.Object), even if they’re written with C# or Visual Basic, because they can’t have methods. (In addition, structures in the wrt itself don’t inherit T:System.ValueType.) However, they appear to have M:System.ValueType.ToString, M:System.ValueType.Equals(System.Object), and M:System.ValueType.GetHashCode methods when you use them in your C# or Visual Basic code, and the .NET Framework provides the default behavior for these methods.

The following example demonstrates how the M:System.ValueType.Equals(System.Object) method can be overridden by a derived value type.

public struct Complex 
	public double m_Re;
	public double m_Im;

	public override bool Equals( object ob ){
		if( ob is Complex ) {
			Complex c = (Complex) ob;
			return m_Re==c.m_Re && m_Im==c.m_Im;
		else {
			return false;

	public override int GetHashCode(){
		return m_Re.GetHashCode() ^ m_Im.GetHashCode();

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang