代码之家  ›  专栏  ›  技术社区  ›  Dark Star1

是否仍有必要过载==以满足其正常运行?

  •  2
  • Dark Star1  · 技术社区  · 15 年前

    我之所以问这个问题是因为在阅读了有关在页面末尾重载此运算符的msdn建议之后,它提到:

    运算符==重载中的一个常见错误是使用(a==b)、(a==null)或(b==null)检查引用相等性。相反,这会导致对重载运算符==的调用,从而导致无限循环。使用referenceequals或将类型强制转换为object,以避免循环。

    所以我想知道是否应该为标准场景实现重载。

    1 回复  |  直到 15 年前
        1
  •  10
  •   Hamish Grubijan    15 年前

    不!除非你知道你在做什么,否则不要搞参考平等。如果需要,实现IComparable Equals方法。

    编辑:为了获得更好的图像,请查看有效的C,第9项。

    编辑:您可以从这里访问:

    http://my.safaribooksonline.com/0321245660/ch01lev1sec10