В этом объявлении тип данных, которыми оперирует метод CompareTo (), может быть указан явным образом. Следовательно, интерфейс IComparable обеспечивает типовую безопасность. Именно по этой причине он теперь считается более предпочтительным в программировании на С#, чем интерфейс IComparable.
Интерфейс IEquatable
Интерфейс IEquatable реализуется в тех классах, где требуется определить порядок сравнения двух объектов на равенство их значений. В этом интерфейсе определен только один метод, Equals (), объявление которого приведено ниже.
bool Equals(Т
other)Этот метод возвращает логическое значение
true,если значение вызывающего объекта оказывается равным значению другого объектаother, в противном случае — логическое значениеfalse.Интерфейс
IEquatableреализуется в нескольких классах и структурах среды .NET Framework, включая структуры числовых типов и классString.Для реализации интерфейсаIEquatableобычно требуется также переопределять методыEquals (Object)иGetHashCode (), определенные в классеObject.Интерфейс IConvertible
Интерфейс
IConvertibleреализуется в структурах всех типов значений,StringиDateTime.В нем определяются различные преобразования типов. Реализовывать этот интерфейс в создаваемых пользователем классах, как правило, не требуется.Интерфейс ICloneable
Реализовав интерфейс
ICloneable,можно создать все условия для копирования объекта. В интерфейсеICloneableопределен только один метод,Clone (), объявление которого приведено ниже.object Clone()
В этом методе создается копия вызывающего объекта, а конкретная его реализация зависит от способа создания копии объекта. Вообще говоря, существуют две разновидности копий объектов: полная и неполная. Если создается полная копия, то копия совершенно не зависит от оригинала. Так, если в исходном объекте содержится ссылка на другой объект
О,то при его копировании создается также копия объектаО.А при создании неполной копии осуществляется копирование одних только членов, но не объектов, на которые эти члены ссылаются. Так, после создания неполной копии объекта, ссылающегося на другой объектО,копия и оригинал будут ссылаться на один и тот же объектО,причем любые изменения в объектеОбудут оказывать влияние как на копию, так и на оригинал. Как правило, методClone() реализуется для получения полной копии. А неполные копии могут быть созданы с помощью методаMemberwiseClone (), определенного в классеObj ect.