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.
Diese Codegenerierung gilt für:
- C#
Was: Hiermit können Sie Equals - und GetHashCode-Methoden generieren.
Wann: Generieren Sie diese Außerkraftsetzungen, wenn Sie über einen Typ verfügen, der von einem oder mehreren Feldern verglichen werden soll, anstatt nach Objektspeicherort im Arbeitsspeicher.
Warum:
Wenn Sie einen Werttyp implementieren, sollten Sie die Equals-Methode außer Kraft setzen. Wenn Sie dies tun, können Sie eine höhere Leistung über die Standardimplementierung der Equals-Methode für ValueType erzielen.
Wenn Sie einen Verweistyp implementieren, sollten Sie erwägen, die Equals-Methode außer Kraft zu setzen, wenn der Typ wie ein Basistyp aussieht, z. B. Point, String, BigNumber usw.
Überschreiben Sie die GetHashCode-Methode , damit ein Typ in einer Hashtabelle ordnungsgemäß funktioniert. Weitere Anleitungen zu Gleichheitsoperatoren.
Vorgehensweise
Platzieren Sie den Cursor an einer beliebigen Stelle in der Zeile der Typdeklaration.
public class ImaginaryNumber { public double RealNumber { get; set; } public double ImaginaryUnit { get; set; } }Ihr Code sollte dem folgenden Screenshot ähneln:
Tipp
Doppelklicken Sie nicht auf den Namen des Typs, oder die Menüoption ist nicht verfügbar. Platzieren Sie einfach den Cursor an einer beliebigen Stelle in der Zeile.
Wählen Sie als Nächstes eine der folgenden Aktionen aus:
Drücken Sie die Strg-Taste+, um das Menü Schnellaktionen und Refactorings aufzurufen.
Klicken Sie mit der rechten Maustaste, und wählen Sie das Menü Schnellaktionen und Umgestaltungen aus.
Klicken Sie auf den
, das am linken Rand angezeigt wird.
Wählen Sie im Dropdownmenü " Gleich(Objekt) generieren" oder "Gleich generieren" und "GetHashCode" aus.
Wählen Sie im Dialogfeld " Mitglieder auswählen" die Elemente aus, für die Sie die Methoden generieren möchten:
Tipp
Sie können auch auswählen, dass Operatoren aus diesem Dialogfeld generiert werden sollen, indem Sie das Kontrollkästchen am unteren Rand des Dialogfelds verwenden.
Die
EqualsMethoden undGetHashCodeMethoden werden mit Standardimplementierungen generiert, wie im folgenden Code gezeigt:public class ImaginaryNumber : IEquatable<ImaginaryNumber> { public double RealNumber { get; set; } public double ImaginaryUnit { get; set; } public override bool Equals(object obj) { return Equals(obj as ImaginaryNumber); } public bool Equals(ImaginaryNumber other) { return other != null && RealNumber == other.RealNumber && ImaginaryUnit == other.ImaginaryUnit; } public override int GetHashCode() { return HashCode.Combine(RealNumber, ImaginaryUnit); } }Ihr Code sollte dem folgenden Screenshot ähneln: