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 можно свободно комбинировать с данными
