Vergleich zweier Strukturen mit ==

Ich versuche, zwei Strukturen mit Gleich (==) in C # zu vergleichen. Meine Struktur ist unten:

public struct CisSettings : IEquatable<CisSettings>
{
    public int Gain { get; private set; }
    public int Offset { get; private set; }
    public int Bright { get; private set; }
    public int Contrast { get; private set; }

    public CisSettings(int gain, int offset, int bright, int contrast) : this()
    {
        Gain = gain;
        Offset = offset;
        Bright = bright;
        Contrast = contrast;
    }

    public bool Equals(CisSettings other)
    {
        return Equals(other, this);
    }

    public override bool Equals(object obj)
    {
        if (obj == null || GetType() != obj.GetType())
        {
            return false;
        }

        var objectToCompareWith = (CisSettings) obj;

        return objectToCompareWith.Bright == Bright && objectToCompareWith.Contrast == Contrast &&
               objectToCompareWith.Gain == Gain && objectToCompareWith.Offset == Offset;

    }

    public override int GetHashCode()
    {
        var calculation = Gain + Offset + Bright + Contrast;
        return calculation.GetHashCode();
    }
}

Ich versuche, struct als eine Eigenschaft in meiner Klasse zu haben, und möchte überprüfen, ob die struct dem Wert entspricht, dem ich sie zuweisen möchte, bevor ich fortfahre und dies tue, damit ich die Eigenschaft nicht anzeige hat sich geändert, wenn es nicht so ist:

public CisSettings TopCisSettings
{
    get { return _topCisSettings; }
    set
    {
        if (_topCisSettings == value)
        {
            return;
        }
        _topCisSettings = value;
        OnPropertyChanged("TopCisSettings");
    }
}

In der Zeile, in der ich auf Gleichheit überprüfe, wird jedoch der folgende Fehler angezeigt:

Operator '==' kann nicht auf Operanden vom Typ 'CisSettings' und 'CisSettings' angewendet werden

Ich kann nicht herausfinden, warum dies geschieht. Könnte mich jemand in die richtige Richtung weisen?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage