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

来源:互联网 发布:芙丽芳丝洗面奶知乎 编辑:程序博客网 时间:2024/05/16 12:55
Equal与==都可以被重写,但要把握的原则是:

重写Equal来表示值相等,而不重写==继续让其表示引用相同

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