Высокоуровневые методы информатики и программирования. Тузовский А.Ф. - 102 стр.

UptoLike

Составители: 

102
obj = с as IMyInterface;
Операция as выполняет преобразование к требуемому интерфейсу, если
объект поддерживает этот интерфейс, и присваивает полученное значе-
ние переменной. Если преобразование невозможно, то вместо генерации
исключения (как это происходит при кастинге), данная операция при-
сваивает интерфейсной переменной значение null. Например:
SomeType obj1;
IMyInterface obj2;
// некоторый код для инициализации obj1
obj2 = obj1 as IMyInterface;
if(obj2 != null) {
obj.Method1( ); //переменная имеет верное значение
}
else { // объект obj1 не поддерживает нужный интерфейс
//обработка ошибки
}
6.3.4. Встроенные интерфейсы
Интерфейсы позволяют описывать некоторые желательные свой-
ства и методы, которыми должны обладать разные классы. В библиоте-
ке FCL имеется большое число стандартных интерфейсов. Например,
все классы, допускающие сравнение своих объектов, обычно наследуют
интерфейс IComparable, реализация которого позволяет сравнивать
объекты не только на равенство, но и на "больше" или "меньше".
Имеются много интерфейсов, описанных в библиотеке FCL. Они
используются разными классами библиотеки так же, как и классами,
создаваемыми разработчиками.
Примером такого интерфейса является интерфейс IComparable,
который имеет всего один метод CompareTo(object obj), возвра-
щающий целочисленное значение, положительное, отрицательное или
равное нулю, в зависимости от выполнения отношения "больше",
"меньше" или "равно".
Как правило, в классе вначале определяют метод CompareTo, а
после этого вводят перегруженные операции, чтобы выполнять сравне-
ние объектов привычным образом с использованием знаков операций
отношения. Чтобы ввести отношение порядка на классе Person, рас-
смотренном ранее, нужно сделать этот класс наследником интерфейса
IComparable. Для этого нужно реализовать в этом классе метод ин-
терфейса CompareTo:
public class Person:IComparable
{
public int CompareTo(object obj){