HashCode

哈希代码是一个用于在相等测试过程中标识对象的数值。 它还可以作为一个集合中的对象的索引。

Equals()用以決定2個object是否相同,DataGrid一類控制項會使用,多數DataGrid的選擇列問題都出於這裏
GetHashCode()和Equals()是一對的,定義為:"若2個object的GetHashCode()返回值不相同:以Equals()為準,該2個object一定是不同的object"
總之,繼承MasterBase時要清楚一個問題:何謂不同的object?

 

        public static bool operator ==(MasterBase a, MasterBase b) {
            if (Object.ReferenceEquals(a, b)) {
                return true;
            }
            if (!Object.ReferenceEquals(a, null) && !Object.ReferenceEquals(b, null)
                && a.GetType() == b.GetType()
                && a.CompanyCode == b.CompanyCode && a.Code == b.Code) {
                return true;
            }
            return false;
        }

        public static bool operator !=(MasterBase a, MasterBase b) {
            return !(a == b);
        }

        public override int GetHashCode() {
            return
               (this.CompanyCode == null ? 0 : this.CompanyCode.GetHashCode()) * 17 +
               (this.Code == null ? 0 : this.Code.GetHashCode());
        }

       public override bool Equals(object obj) {
            return this == obj as MasterBase;
            }

参考:http://blog.csdn.net/wyfde123/article/details/6397130

http://www.cnblogs.com/tonytonglx/articles/2085947.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值