对象等于相等性比较的通用实现

  

最近编码的过程中,使用了对象本地内存缓存,缓存用了Dictionary<字符串、object> ConcurrentDictionary<字符串、oject>还可以是MemoryCache(底层基于Hashtable)。使用缓存,肯定要处理数据变化缓存同步的问题。如何比较数据的变化,演进为新的内存对象数据和已有内存对象数据的相等性比较!

对象的等于相等性比较,百度,谷歌会有一大堆实现,几个重点的点:

1。实现接口IEquatable p

http://女士d n。mi c r o s o f t。c o m/en - us/图书馆/ms131190 (v=vs.110) . aspx

2。重写bool=(对象)方法和,int GetHashCode方法()方法计画

p://s助教,ck o v e r f l o w。co m/q u es t i o n s/2 7 3 49 1 4/whats-the-difference-between-iequatable-and-just-overriding-object-equals

这里直接贴出来一个通用实现,分享给大家:

对象Equals相等性比较的通用实现

  1  ///   2     /// 流控事件  3     ///   4     [Serializable]  5     public class FlowControlEvent: IEquatable  6     {  7         public static readonly string Global = "Global";  8   9         ///  10         /// 标识 11         ///  12         public string ID { get; set; } 13  14         ///  15         /// 流控策略名称 16         ///  17         public string StrategyName { get; set; } 18  19         ///  20         /// 是否手工触发 21         ///  22         public bool IsManuelTrigger { get; set; } 23  24         ///  25         /// 触发时间 26         ///  27         public DateTime TriggerTime { get; set; }        
  null

对象等于相等性比较的通用实现