Между прочим, можно утверждать, что было бы полезно, чтобы семантика IEquatable <T> сравнивала объекты только на основе членов типа T, так что, например, IEquatable <SchedulerEvent> будет проверять ScheduledTime и ScheduledAction на равенство, но даже при применении к SchedulerEventWithMessage или SchedulerEventWithGong не будет проверять свойства Message или GongVolume. Действительно, это будет полезной семантикой для метода IEquatable <T>, и я предпочел бы такую ​​семантику, но для одной проблемы: Comparer <T> .Default.GetHashCode (T) всегда вызывает одну и ту же функцию Object.GetHashCode () независимо от того, тип T. Это значительно ограничивает способность IEquatable <T> изменять свое поведение в зависимости от типа T.

н ли я реализовать обаIComparable и общийIComparable<T>? Существуют ли ограничения, если я реализую только один из них?

Ответы на вопрос(3)

Ваш ответ на вопрос