【发布时间】:2014-04-25 02:40:55
【问题描述】:
我需要比较我创建的一些引用类型的值。我应该覆盖哪个,Object.Equals 方法或 == 运算符?我猜 Object.Equals 是正确的方法,因为我没有比较引用本身。
【问题讨论】:
标签: c# comparison operator-keyword
我需要比较我创建的一些引用类型的值。我应该覆盖哪个,Object.Equals 方法或 == 运算符?我猜 Object.Equals 是正确的方法,因为我没有比较引用本身。
【问题讨论】:
标签: c# comparison operator-keyword
您应该重写 Equals() 方法(很可能还有 GetHashCode() 方法,以保持等价性)
public override bool Equals(object obj) { ... }
public override int GetHashCode() { ... }
【讨论】:
按照 karim 所说的,我建议您遵循 MSDN 指南来重载 Equals 运算符以及重载 == 运算符。这为您未来的使用提供了更多的灵活性。
【讨论】: