为了账号安全,请及时绑定邮箱和手机立即绑定

c# .net Equals()函数重载, 像下面这样写好吗?

c# .net Equals()函数重载, 像下面这样写好吗?

慕森卡 2018-09-07 12:20:45
帮忙评审一下下面这个写法 class Product    {        public string Name;        public DateTime ExpiryDate;        public decimal Price;        public string[] Sizes;        public override bool Equals(object obj)        {            Product p2 = (Product)obj;            if (Name == p2.Name && ExpiryDate == p2.ExpiryDate && Price == p2.Price)            {                for (int i = 0; i < Sizes.Length; i++)                {                    if (!Sizes[i].Equals(p2.Sizes[i]))                        return false;                }                return true;            }            else                return true;        }    }
查看完整描述

2 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

先判断obj is Product,以避免obj不是Product的情况。

另外,可以把两个Product比较的逻辑放在双等运算符重载里面,Equals中调用。

具体逻辑没有什么统一的标准,比如你可以比较所有字段,也可以在有id的情况只比较id,因业务而异。


查看完整回答
反对 回复 2018-09-23
  • 2 回答
  • 0 关注
  • 864 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信