Для сравнения двух объектов параметра обобщенного типа они должны реализовывать интерфейсIComparableилиIComparable
public interface IEquatable
Сравниваемый тип данных передается ему в качестве аргумента типаТ.В этом интерфейсе определяется методEquals (), как показано ниже.
bool Equals(Т
В этом методе сравниваются вызывающий объект и другой объект, определяемый параметром
В ходе реализации интерфейсаIEquatable
// Требуется обобщенный интерфейс IEquatable
public static bool IsIn
if(v.Equals(what)) // Применяется метод Equals(). return true;
return false;
}
Обратите внимание в приведенном выше примере на применение следующега ограничения.
where Т : IEquatable
Это ограничение гарантирует, что только те типы, в которых реализован интерфейсIEquatable,являются действительными аргументами типа для методаIs In (). Внутри этого метода применяется методEquals (), который определяет равенство одного объекта другому.
Для определения относительного порядка следования двух элементов применяется интерфейсI Comp а г able.У этого интерфейса имеются две формы: обобщенная и необобщенная. Обобщенная форма данного интерфейса обладает преимуществом обеспечения типовой безопасности, и поэтому мы рассмотрим здесь именно ее. Обобщенный интерфейсIComparable
public interface IComparable