我想在排队之前检查一个对象是否在队列中.如果没有明确定义EqualityComparer,那么Contains()函数会比较什么?
如果它比较属性值,那就完美了.如果它比较以查看队列中是否存在对该对象的引用,那么就会破坏我在代码中尝试完成的操作.
对于类,默认的相等操作是通过引用 - 它基本上假定对象标识和相等是相同的.
你可以通过覆盖Equals和克服这个来克服这一点GetHashCode.我还建议实施IEquatable<T>以明确这一点.您的哈希代码实现应该从与相等操作相同的值生成哈希代码.
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |