美文网首页
C#中Equal与==的使用原则

C#中Equal与==的使用原则

作者: 晓龙酱 | 来源:发表于2017-09-18 10:32 被阅读4次
    Equal与==都可以被重写,但要把握的原则是:

    重写Equal来表示值相等,而不重写==继续让其表示引用相同
    <pre>
    class Person
    {
    public Person(int id)
    {
    ID = id;
    }

    public string ID{get; private set;}
    
    <font color=blue>
    public override bool Equals(object obj)
    {
        Person p = obj as Person;
        if(p == null)
            return false;
        return ID == p.ID;
    }
    </font>
    <font color=red>
    // 这里要注意,一定要重写GetHashCode()方法
    // 否则会出现当值相等的两个Person做为key在Dictionary中时,会认为是两个不同的key
    pubic override int GetHashCode()
    {
        return ID.GetHashCode();
    }
    </font>
    

    }
    </pre>

    相关文章

      网友评论

          本文标题:C#中Equal与==的使用原则

          本文链接:https://www.haomeiwen.com/subject/ytivsxtx.html