Console.WriteLine('He подлежит выводу.');

// Применить метод InRange() к данным типа int. if(InRange(2, nums))

Console.WriteLine('Значение 2 находится в границах массива nums.'); if(InRange(1, nums))

Console.WriteLine('Значение 1 находится в границах массива nums.'); if(InRange(5, nums))

Console.WriteLine('Значение 5 находится в границах массива nums.'); if(!InRange(0, nums))

Console.WriteLine('Значение О HE находится в границах массива nums.'); if(!InRange(6, nums))

Console.WriteLine('Значение 6 HE находится в границах массива nums.');

// Применить метод InRange() к объектам класса MyClass.. if(InRange(new MyClass(2), mcs))

Console.WriteLine('Объект MyClass(2) находится в границах массива nums.'); if(InRange(new MyClass(1), mcs))

Console.WriteLine('Объект MyClass(1) находится ' +

'в границах массива nums.'); if(InRange(new MyClass(4), mcs))

Console.WriteLine('Объект MyClass(4) находится ' +

'в границах массива nums.'); if(!InRange(new MyClass(0), mcs))

Console.WriteLine('Объект MyClass(0) HE ' +

'находится в границах массива nums.'); if(!InRange(new MyClass(5), mcs))

Console.WriteLine('Объект MyClass(5) HE ' +

'находится в границах массива nums.');

}

}

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

Найдено значение 2.

Найден объект MyClass (3) .

Значение 2 находится в границах массива nums.

Значение 1 находится в границах массива nums.

Значение 5 находится в границах массива nums.

Значение 0 НЕ находится в границах массива nums

Значение 6 НЕ находится в границах массива nums

Объект MyClass(2)    находится    в    границах    массива    nums.

Объект MyClass(1)    находится    в    границах    массива    nums.

Объект MyClass(4)    находится    в    границах    массива    nums.

Объект MyClass(0) НЕ находится в границах массива nums.

Объект MyClass(5) НЕ находится в границах массива nums.

ПРИМЕЧАНИЕ

Если параметр типа обозначает ссылку или ограничение на базовый класс, то к экземплярам объектов, определяемых таким параметром типа, можно применять операторы == и ! =, хотя они проверяют на равенство только ссылки. А для сравнения значений придется реализовать интерфейс IComparable или же обобщенные интерфейсы IComparable<T> и IEquatable<T>.

Иерархии обобщенных классов

Обобщенные классы могут входить в иерархию классов аналогично необобщенным классам. Следовательно, обобщенный класс может действовать как базовый или производный класс. Главное отличие между иерархиями обобщенных и необобщенных классов заключается в том, что в первом случае аргументы типа, необходимые обобщенному базовому классу, должны передаваться всеми производными классами вверх по иерархии аналогично передаче аргументов конструктора.

Применение обобщенного базового класса

Ниже приведен простой пример иерархии, в которой используется обобщенный базовый класс.

// Простая иерархия обобщенных классов, using System;

// Обобщенный базовый класс, class Gen<T> {

Т ob;

public Gen(Т о) { ob = о;

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату