ВУЗ:
Составители:
Рубрика:
125
// Базовые типы закрытые.
class D : C<string, int>, I1<string> {}
// Базовые типы конструируемые.
class E<T> : C<int, T>, I1<T> {}
class F : I1<T> {} // Ошибка! Тип T не определен.
class G<T> : C<string, int> {} // Базовый тип закрытый
7.3. Обобщенные интерфейсы
Обобщенный интерфейс задает абстрактное поведение (абстрактные
методы), которое может быть использовано при различных типах
параметров. Например, следующий обобщенный интерфейс задает все
операции сравнения объектов обобщенного типа T:
// интерфейс, определяющий методы сравнения двух элементов
interface IMyComparer<T>
{
bool Greater(T ob1, T ob2);
bool Less(T ob1, T ob2);
bool LessOrEqual(T ob1, T ob2);
bool GreaterOrEqual(T ob1, T ob2);
bool Equal(T ob1, T ob2);
bool NotEqual(T ob1, T ob2);
}
Наследовать этот интерфейс могут как открытые (обобщенные) классы,
так и закрытые (конкретные) классы. Во втором случае интерфейс
IMyComparer используется для конкретного типа данных.
Создадим на основе этого интерфейса обобщенный класс, в котором
определяются все методы сравнения.
// обобщенный класс, предназначенный для сравнения элементов
// раскрывает обобщенный интерфейс IMyComparer
class MyComparer<T> : IMyComparer<T> where T : IComparable
{
// переопределяются различные методы сравнения
// двух элементов, определенные интерфейсом IMyComparer
public bool Greater(T ob1, T ob2)
{
return ob1.CompareTo(ob2)>0;
}
// Базовые типы закрытые. class D : C, I1 {} // Базовые типы конструируемые. class E : C , I1 {} class F : I1 {} // Ошибка! Тип T не определен. class G : C {} // Базовый тип закрытый 7.3. Обобщенные интерфейсы Обобщенный интерфейс задает абстрактное поведение (абстрактные методы), которое может быть использовано при различных типах параметров. Например, следующий обобщенный интерфейс задает все операции сравнения объектов обобщенного типа T: // интерфейс, определяющий методы сравнения двух элементов interface IMyComparer { bool Greater(T ob1, T ob2); bool Less(T ob1, T ob2); bool LessOrEqual(T ob1, T ob2); bool GreaterOrEqual(T ob1, T ob2); bool Equal(T ob1, T ob2); bool NotEqual(T ob1, T ob2); } Наследовать этот интерфейс могут как открытые (обобщенные) классы, так и закрытые (конкретные) классы. Во втором случае интерфейс IMyComparer используется для конкретного типа данных. Создадим на основе этого интерфейса обобщенный класс, в котором определяются все методы сравнения. // обобщенный класс, предназначенный для сравнения элементов // раскрывает обобщенный интерфейс IMyComparer class MyComparer : IMyComparer where T : IComparable { // переопределяются различные методы сравнения // двух элементов, определенные интерфейсом IMyComparer public bool Greater(T ob1, T ob2) { return ob1.CompareTo(ob2)>0; } 125
Страницы
- « первая
- ‹ предыдущая
- …
- 123
- 124
- 125
- 126
- 127
- …
- следующая ›
- последняя »