Partial 4 страница. public static DBBool operator <(DBInt x, DBInt y) { return x.defined && y.defined?public static DBBool operator <(DBInt x, DBInt y) { public static DBBool operator >=(DBInt x, DBInt y) { public static DBBool operator <=(DBInt x, DBInt y) { public override bool Equals(object obj) { public override int GetHashCode() { public override string ToString() { 11.4.2 Логический тип базы данных Представленная ниже структура DBBool реализует трехзначный логический тип. Возможными значениями этого типа являются значения DBBool.True, DBBool.False и DBBool.Null, где член Null указывает неизвестное значение. Подобные трехзначные логические типы часто используются в базах данных. using System; public struct DBBool public static readonly DBBool Null = new DBBool(0); // Закрытое поле, в котором хранятся значения –1, 0 и 1 для False, Null и True. sbyte value; // Закрытый конструктор экземпляра. Значение этого параметра должно быть –1, 0 или 1. DBBool(int value) { // Свойства для проверки значения объекта DBBool. Возвращает true, если этот объект public bool IsNull { get { return value == 0; } } public bool IsFalse { get { return value < 0; } } public bool IsTrue { get { return value > 0; } } // Неявное преобразование из bool в DBBool. Значение True сопоставлено DBBool.True, а значение public static implicit operator DBBool(bool x) { // Явное преобразование из DBBool в bool. Вызывает исключение, если public static explicit operator bool(DBBool x) { // Оператор равенства. Возвращает Null, если один из операторов равен Null, в обратном случае public static DBBool operator ==(DBBool x, DBBool y) { // Оператор неравенства. Возвращает Null, если один из операторов равен Null, в обратном случае public static DBBool operator!=(DBBool x, DBBool y) { // Оператор логического отрицания. Возвращает True, если операнд имеет значение False, Null, public static DBBool operator!(DBBool x) { // Оператор логического AND. Возвращает False, если один из операндов имеет значение False, public static DBBool operator &(DBBool x, DBBool y) { // Оператор логического OR. Возвращает True, если один из операндов имеет значение True, public static DBBool operator |(DBBool x, DBBool y) { // Оператор определенной истины. Возвращает True, если операнд имеет значение True, в обратном случае public static bool operator true(DBBool x) { // Оператор определенной лжи. Возвращает True, если операнд имеет значение False, в обратном случае public static bool operator false(DBBool x) { public override bool Equals(object obj) { public override int GetHashCode() { public override string ToString() { 12. Массивы; Массив представляет собой структуру данных, содержащую ряд переменных, доступ к которым осуществляется с использованием расчетных индексов. Все переменные, содержащиеся в массиве, которые также называются элементами массива, имеют одинаковый тип, который называется типом элементов массива. Массив имеет ранг, определяющий количество индексов, связанных с каждым из элементов массива. Другими словами, ранг массива указывает количество его измерений. Массив с рангом, равным единице, называется одномерным массивом. Массив с рангом больше единицы называется многомерным массивом. Многомерные массивы конкретного размера часто называются двумерными, трехмерными и так далее. Каждое измерение массива имеет сопоставленную ему длину, выраженную в виде целого неотрицательного числа. Длины измерений не являются частью типа массива, они устанавливаются при создании экземпляра массива с конкретным типом во время выполнения. Длина измерения определяет допустимый диапазон индексов для этого измерения: для измерения с длиной N индексы могут находиться в диапазоне от 0 до N – 1 включительно. Общее число элементов в массиве является совокупностью длин всех измерений массива. Если одно или несколько измерений массива имеют нулевую длину, массив считается пустым. Элемент массива может иметь любой тип, в том числе тип массива. 12.1 Типы массива; Тип массива записывается как тип_не_массива;, за которым следуют спецификации_ранга;: тип_массива: тип_не_массива: спецификации_ранга: спецификация_ранга: разделители_размерностей: Тип_не_массива; является одним из типов;, которые сами по себе не являются типом_массива;. Ранг типа массива задается левой спецификацией_ранга; в типе_массива;: спецификация_ранга; указывает, что массив имеет ранг, равный единице плюс число меток «,» в этой спецификации. Тип элемента массива представляет собой тип, полученный в результате удаления крайней левой спецификации_ранга;: · Тип массива в форме T[R] указывает массив с рангом R и типом элемента (типом_не_массива) T. · Тип массива в форме T[R][R1]...[RN] указывает массив с рангом R и типом элемента T[R1]...[RN]. В результате данные спецификации_ранга; считываются слева направо перед последним типом_не_массива элемента. Тип int[][,,][,] указывает одномерный массив трехмерных массивов из двумерных массивов значений с типом int. Во время выполнения значение типа массива может быть равно null или может содержать ссылку на экземпляр массива этого типа.
|