Auf Englisch lesen

Freigeben über


ValueType.Equals(Object) Methode

Definition

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

public override bool Equals(object obj);
public override bool Equals(object? obj);

Parameter

obj
Object

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

Gibt zurück

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

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie die Equals-Methode durch einen abgeleiteten Werttyp überschrieben werden kann.

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();
    }
}

Hinweise

Die ValueType.Equals(Object)-Methode setzt Object.Equals(Object) außer Kraft und stellt die Standardimplementierung der Wertgleichheit für alle Werttypen in .NET bereit.

Die Standardimplementierung ruft Object.Equals(Object) für jedes Feld der aktuellen Instanz und obj auf und gibt true zurück, wenn alle Felder gleich sind.

.NET 9 und höher löst die Standardimplementierung von ValueType.Equals(Object)NotSupportedException aus, wenn InlineArrayAttribute auf den Typ angewendet wird.

Wichtig

Insbesondere wenn ihr Werttyp Felder enthält, die Referenztypen sind, sollten Sie die Equals(Object)-Methode überschreiben. Dies kann die Leistung verbessern und es Ihnen ermöglichen, die Bedeutung der Gleichheit für den Typ genauer darzustellen.

Hinweise für die Windows-Runtime

Wenn Sie die Equals-Methode für eine Windows-Runtime-Struktur aufrufen, stellt sie das Standardverhalten für Werttypen bereit, die Equalsnicht außer Kraft setzen. Dies ist Teil der Unterstützung, die .NET für die Windows-Runtime bereitstellt (siehe .NET-Support für Windows Store-Apps und Windows-Runtime-). Windows-Runtime-Strukturen können Equalsnicht außer Kraft setzen, auch wenn sie mit C# oder Visual Basic geschrieben wurden, da sie keine Methoden haben können. (Darüber hinaus erben Strukturen in der Windows-Runtime selbst nicht ValueType.) Sie scheinen jedoch ToString, Equalsund GetHashCode Methoden zu haben, wenn Sie sie in Ihrem C#- oder Visual Basic-Code verwenden, und .NET stellt das Standardverhalten für diese Methoden bereit.

Gilt für:

Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0