C# - 重载运算符== vs Equals,是不是很糟糕的决定?

时间:2015-09-08 18:50:56

标签: c# .net software-design

我正在搜索,但我找不到任何东西,如果存在则关闭它。

这是一个设计问题。我有两个相同对象实例(前端中的引用类型)的经典问题,比较为 Dictionary 中的键, List 中的对象,或者运算符 == ,返回false。

阅读msdn == Operator (C# Reference),运算符 == 用于比较对象,而非实例。

您可以执行覆盖等于 + GetHashCode EntityBase ,以避免 Dictionary & 列表,并重载运算符 == 进行比较,域实体可以从中继承,但阅读Jon Skeet's article我有点困惑。我看到的选项是:

  1. 重载运算符 == != )和等于,对我来说代码更具可读性,但与大型集合相比可能会带来性能损失
  2. 覆盖等于并避免代码中的 == ,特殊代码。
  3. 尝试仅使用每个对象的单个实例,听起来很复杂......同步代码。
  4. 更多选项?
  5. 提前致谢。

0 个答案:

没有答案