您好我有一个派生自 ContentControl 的类,但我无法覆盖 GetHashCode 和 Equal 方法。我收到一个错误
错误 5 无法覆盖继承的成员 'System.Windows.DependencyObject.GetHashCode()' 因为它是密封的 有没有办法覆盖这个方法?我需要使用 LINQ 中的 Union 方法,但是我需要比较与正常情况不同的对象。有什么办法吗?
您好我有一个派生自 ContentControl 的类,但我无法覆盖 GetHashCode 和 Equal 方法。我收到一个错误
错误 5 无法覆盖继承的成员 'System.Windows.DependencyObject.GetHashCode()' 因为它是密封的 有没有办法覆盖这个方法?我需要使用 LINQ 中的 Union 方法,但是我需要比较与正常情况不同的对象。有什么办法吗?
是的 -IEqualityComparer<T>
单独实现,并将其传递给Union
.
基本上你会告诉它如何比较任何两项是否相等,以及如何获取任何一项的哈希码。Union
在构建哈希集等时将使用您的自定义比较。您不需要覆盖任何现有方法。