C#中重写Equals和GetHashCode方法的案例

C#中重写Equals和GetHashCode方法的一些案例:

class keyClass
{
    public string Name { get; set; }
    public string Code { get; set; }
    public override bool Equals(object obj)
    {
        if (null == obj)
            return false;
        if (obj.GetType() != this.GetType())
            return false;
        return ((keyClass)obj).Name.Equals(this.Name);
    }
    public override int GetHashCode()
    {
        return this.Code.GetHashCode();
    }
    public static bool operator ==(keyClass o1, keyClass o2)
    {
        if (o1 is null)
        {
            return o2 is null;
        }
        else
        {
            return o1.Equals(o2);
        }
    }

    public static bool operator !=(keyClass o1, keyClass o2)
    {
        return !(o1 == o2);
    }
}

 在将对象当做键时,会先执行GetHashCode方法。

posted @ 2022-05-09 09:21  东经115  阅读(139)  评论(0编辑  收藏  举报