Если вы имеете в виду, что равенство трудно определить, когда речь идет о наследовании, да.
Однако .NET имеет интерфейс IEqualityComparer<T>
, который часто используется для равенства и хэширования - для таких контейнеров, как Dictionary<TKey, TValue>
. Почти все в структуре, которая нуждается в равенстве / хешировании, позволяет определять поведение с помощью IEqualityComparer<T>
, что означает, что вы можете выражать любое понятие равенства, которое хотите, если форма, заданная самим типом, не подходит для ваших нужд.