Таблица 21.10. Методы, определенные в структуре Boolean Метод Назначение public int CompareTo(bool value) Сравнивает логическое значение вызывающего объекта со значением параметра value. Возвращает нуль, если сравниваемые значения равны; отрицательное значение, если вызывающий объект имеет логическое значение false, а параметр value — логическое значение true; и, наконец, положительное значение, если вызывающий объект имеет логическое значение true, а параметр value — логическое значение false public int CompareTo(object obj) Сравнивает логическое значение вызывающего объекта со значением параметра obj. Возвращает нуль, если сравниваемые значения равны; отрицательное значение, если вызывающий объект имеет логическое значение false, а параметр obj — логическое значение true; и, наконец, положительное значение, если вызывающий объект имеет логическое значение true, а параметр obj — логическое значение false public bool Equals(bool obj) Возвращает логическое значение true, если значение вызывающего объекта равно значению параметра obj public override bool Equals(object obj) Возвращает логическое значение true, если значение вызывающего объекта равно значению параметра obj public override int GetHashCode Возвращает хеш-код для вызывающего объекта public TypeCode GetTypeCode Возвращает значение перечисления TypeCode для структуры Boolean, т.е. TypeCode.Boolean public static bool Parse(string s) Возвращает эквивалент типа bool символьной строки s. Если строка s не содержит ни поле Boolean. TrueString, ни поле Boolean.FalseString, то генерируется исключение FormatException, независимо от того, какими буквами набрано содержимое строки: прописными или строчными public override string ToString Возвращает строковое представление значения вызывающего объекта, которое должно быть либо значением поля TrueString, либо значением поля FalseString public string ToString(IFormatProvider provider) Возвращает строковое представление значения вызывающего объекта, которое должно быть либо значением поля TrueString, либо значением поля FalseString. При этом параметр provider игнорируется public static bool TryParse(string s, out bool result) Предпринимает попытку преобразовать символ из строки s в его эквивалентное значение типа bool. При успешной попытке это значение сохраняется в параметре result и возвращается логическое значение true. Если же строка s не содержит ни поле Boolean. TrueString, ни поле Boolean.FalseString, то возвращается логическое значение false, независимо от того, какими буквами набрано содержимое строки: прописными или строчными, в отличие от метода Parse, который генерирует исключение в аналогичной ситуации Класс Array
Класс Array относится к числу наиболее часто используемых в пространстве имен System. Он является базовым классом для всех массивов в С#. Следовательно, его ме тоды можно применять к массивам любого встроенного в C# типа или же к массивам определяемого пользователем типа. Свойства, определенные в классе Array, перечис лены в табл. 21.11, а методы — в табл. 21.12.
В классе Array реализуются следующие интерфейсы: ICloneable, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable, а также IList. Все интерфейсы, кроме ICloneable, определены в пространстве имен System. Collections, подробнее рассматриваемом в главе 25.
В ряде методов данного класса используется параметр типа IComparer или
IComparer
Этот метод возвращает значение больше нуля, если х больше у; значение меньше нудя, если х меньше у; и, наконец, нулевое значение, если оба значения равны. Интерфейс IComparer находится в пространстве имен System.Collections. Generic. В нем определяется метод Compare, общая форма которого приведена ниже. int Compare(Т х, Т у)
Он действует таким же образом, как и его необобщенный аналог, возвращая значе ние больше нуля, если х больше у значение меньше нуля, если х меньше у, и, наконец, нулевое значение, если оба значения равны. Преимущество интерфейса IComparer заключается в том, что он обеспечивает типовую безопасность. Ведь в этом случае тип обрабатываемых данных указывается явным образом, а следовательно, никакого при ведения типов не требуется.
В последующих разделах демонстрируется ряд наиболее распространенных опера ций с массивами.