Я хочу IEqualityComparer<Type>
, который возвращает true тогда и только тогда, когда два общих типа одинаковы, игнорируя общие параметры. Таким образом, comparer.Equals(typeof(List<A>), typeof(List<B>))
должен вернуть true
.Как сделать IEqualityComparer <Type> для общих типов
Я делаю сравнение по Name
:
public class GenericTypeEqualityComparer : IEqualityComparer<Type>
{
public bool Equals(Type x, Type y)
{
return x.Name == y.Name;
}
public int GetHashCode(Type obj)
{
return obj.Name.GetHashCode();
}
}
Есть некоторые ложноположительные случаи (проблемы пространства имен и т.д.). Я не знаю, что еще делать.
Спасибо. Именно то, что я искал. – AbleArcher