最近编码的过程中,使用了对象本地内存缓存,缓存用了Dictionary<字符串、object> ConcurrentDictionary<字符串、oject>还可以是MemoryCache(底层基于Hashtable)。使用缓存,肯定要处理数据变化缓存同步的问题。如何比较数据的变化,演进为新的内存对象数据和已有内存对象数据的相等性比较!
对象的等于相等性比较,百度,谷歌会有一大堆实现,几个重点的点:
1。实现接口IEquatable
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
这里直接贴出来一个通用实现,分享给大家:
1 ///2 /// 流控事件 3 /// 4 [Serializable] 5 public class FlowControlEvent: IEquatable6 { 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对象等于相等性比较的通用实现