您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

IEquatable和仅重写Object.Equals()有什么区别?

IEquatable和仅重写Object.Equals()有什么区别?

主要原因是性能。当泛型在.NET 2.0中引入他们能够添加一堆整齐班如List<T>Dictionary<K,V>HashSet<T>,等这些结构大量使用GetHashCodeEquals。但是对于值类型,这需要装箱。IEquatable<T>使结构实现强类型Equals方法,因此不需要装箱。因此,在将值类型与泛型集合一起使用时,性能会更好。

引用类型不会带来太多好处,但是该IEquatable<T>实现确实使您避免了强制转换,System.Object如果频繁调用强制转换会有所不同。

正如Jared Parson的博客所述,您仍然必须实现Object覆盖。

其他 2022/1/1 18:17:15 有554人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶