亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 888 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號