【发布时间】:2011-05-31 14:38:00
【问题描述】:
MSDN Guidelines for Overloading Equals() and Operator == 状态:
默认情况下,运算符 == 测试 通过确定是否引用相等 两个参考表明相同 对象,所以引用类型不需要 实现运算符 == 以便 获得此功能。当一个类型 是不可变的,意味着数据 实例中包含的不能 更改,重载运算符 == 为 比较值相等而不是 引用相等可能很有用 因为,作为不可变对象,它们 可以认为是一样的,只要 它们具有相同的价值。 覆盖 非不可变类型中的运算符 == 是 不推荐。
谁能解释一下加粗的原因?
编辑 - 此外,该指南是否仅与 == 运算符相关,还是也适用于 Equals 方法?
【问题讨论】:
标签: c# .net operator-overloading immutability equality