Вход/Регистрация
C# 4.0 полное руководство - 2011
вернуться

Шилдт Герберт

Шрифт:

}

// Перегрузить оператор ++.

public static Nybble operator ++(Nybble op)

{

Nybble result = new Nybble; result.val = op.val + 1;

result.val = result.val & OxF; // сохранить 4 младших разряда return result;

}

// Перегрузить оператор >.

public static bool operator >(Nybble opl, Nybble op2)

{

if(opl.val > op2.val) return true; else return false;

}

// Перегрузить оператор <.

public static bool operator <(Nybble opl, Nybble op2)

{

if(opl.val < op2.val) return true; else return false;

}

// Преобразовать тип Nybble в тип int. public static implicit operator int (Nybble op)

{

return op.val;

}

// Преобразовать тип int в тип Nybble, public static implicit operator Nybble (int op)

{

return new Nybble(op);

}

}

class NybbleDemo { static void Main {

Nybble a = new Nybble(1);

Nybble b = new Nybble(10);

Nybble с = new Nybble; int t;

Console.WriteLine("a: " + (int) a); Console.WriteLine("b: " + (int) b);

if(а < b) Console.WriteLine("а меньше Ь\п");

// Сложить два объекта типа Nybble, с = а + b;

Console.WriteLine("с после операции с = а + b: " + (int) с);

// Сложить значение типа int с объектом типа Nybble, а += 5;

Console.WriteLine("а после операции а += 5: " + (int) а);

Console.WriteLine ;

// Использовать тип Nybble в выражении типа int. t = а * 2 + 3;

Console.WriteLine("Результат вычисления выражения а * 2 + 3: " + t); Console.WriteLine;

// Продемонстрировать присваивание значения типа int и переполнение, а = 19;

Console.WriteLine("Результат присваивания а = 19: " + (int) а);

Console.WriteLine ;

// Использовать тип Nybble для управления циклом.

Console.WriteLine("Управление циклом for " +

"с помощью объекта типа Nybble."); for(а =0; а < 10; а++)

Console.Write((int) а + " ");

Console.WriteLine;

}

}

При выполнении этой программы получается следующий результат.

а: 1 Ь: 10

а меньше b

с после операции с = а + Ь: 11 а после операции а += 5: 6

Результат вычисления выражения а * 2 + 3: 15 Результат присваивания а = 19: 3

Управление циклом for с помощью объекта типа Nybble.

0123456789

Большая часть функций класса Nybble не требует особых пояснений. Тем не менее необходимо подчеркнуть ту особую роль, которую операторы преобразования играют в интегрировании класса типа Nybble в систему типов С#. В частности, объект типа Nybble можно свободно комбинировать с данными других типов в арифметических выражениях, поскольку определены преобразования объекта этого типа в тип int и обратно. Рассмотрим для примера следующую строку кода из приведенной выше программы.

t = а * 2 + 3;

В этом выражении переменная t и значения 2 и 3 относятся к типу int, но в ней присутствует также объект типа Nybble. Оба типа оказываются совместимыми благодаря неявному преобразованию типа Nybble в тип int. В данном случае остальная часть выражения относится к типу int, поэтому объект а преобразуется в тип int с помощью своего метода преобразования.

  • Читать дальше
  • 1
  • ...
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: