【发布时间】:2013-01-30 20:43:22
【问题描述】:
考虑:EqualityComparer.Default 属性,其在 MSDN 中写为:
Default 属性检查类型 T 是否实现 System.IEquatable 接口,如果是,则返回一个 使用该实现的 EqualityComparer。否则,它 返回一个使用覆盖的 EqualityComparer T 提供的 Object.Equals 和 Object.GetHashCode。
我的理解: 因为它会返回 EqualityComparer "object",所以它应该调用 T 提供的 Object.Equals 和 Object.GetHashCode 的覆盖(如果它覆盖或 Object.Equals 和 Object.GetHashCode,否则)。 它怎么会调用 IEquatable 的实现方法呢?是强行做吗?如果是,如何?如果我错了,请纠正我。
这是 MSDN 链接:http://msdn.microsoft.com/en-us/library/ms224763.aspx
【问题讨论】:
标签: c#