public static bool ReferenceEquals(object
public virtual string ToString() - Возвращает строку, описывающую объект
Класс Tuple
В версии .NET Framework 4.0 внедрен удобный способ создания групп объектов (так называемых кортежей). В основу этого способа положен статический класс Tuple, в котором определяется несколько вариантов метода Create() для создания кортежей, а также различные обобщенные классы типа Tuple<. . . >, в которых инкапсулируются кортежи. В качестве примера ниже приведено объявление варианта метода Create(), возвращающего кортеж с тремя членами.
public static Tuple
Create
Следует заметить, что данный метод возвращает объект типа Tuple, в котором инкапсулируются члены кортежа
Интерфейсы IComparable и IComparable
Во многих классах приходится реализовывать интерфейс IComparable или IComparable, поскольку он позволяет сравнивать один объект с другим, используя различные методы, определенные в среде .NET Framework. Интерфейсы IComparable и IComparable были представлены в главе 18, где они использовались в примерах программ для сравнения двух объектов, определяемых параметрами обобщенного типа. Кроме того, они упоминались при рассмотрении класса Array ранее в этой главе. Но поскольку эти интерфейсы имеют особое значение и применяются во многих случаях, то ниже приводится их краткое описание.
Интерфейс IComparable реализуется чрезвычайно просто, потому что он состоит всего лишь из одного метода.
int CompareTo(object obj)
В этом методе значение вызывающего объекта сравнивается со значением объекта, определяемого параметром
Обобщенный вариант интерфейса IComparable объявляется следующим образом.
public interface IComparable
В данном варианте тип сравниваемых данных передается параметру Т в качестве аргумента типа. В силу этого объявление метода CompareTo() претерпевает изменения и выглядит так, как показано ниже.
int CompareTo(Т other)
В этом объявлении тип данных, которыми оперирует метод CompareTo(), может быть указан явным образом. Следовательно, интерфейс IComparable обеспечивает типовую безопасность. Именно по этой причине он теперь считается более предпочтительным в программировании на С#, чем интерфейс IComparable.
Интерфейс IEquatable
Интерфейс IEquatable реализуется в тех классах, где требуется определить порядок сравнения двух объектов на равенство их значений. В этом интерфейсе определен только один метод, Equals(), объявление которого приведено ниже.
bool Equals(Т other)
Этот метод возвращает логическое значение true, если значение вызывающего объекта оказывается равным значению другого объекта false.
Интерфейс IEquatable реализуется в нескольких классах и структурах среды .NET Framework, включая структуры числовых типов и класс String. Для реализации интерфейса IEquatable обычно требуется также переопределять методы Equals(Object) и GetHashCode(), определенные в классе Object.
Интерфейс IConvertible
Интерфейс IConvertible реализуется в структурах всех типов значений, String и DateTime. В нем определяются различные преобразования типов. Реализовывать этот интерфейс в создаваемых пользователем классах, как правило, не требуется.
Интерфейс ICloneable
Реализовав интерфейс ICloneable, можно создать все условия для копирования объекта. В интерфейсе ICloneable определен только один метод, Clone(), объявление которого приведено ниже.
object Clone()