Интерфейсы в качестве возвращаемых значений

Интерфейсы в качестве возвращаемых значений

Интерфейсы можно использовать и в качестве возвращаемых значений методов. Например, можно создать метод, который берет любой System.Object, проверяет на совместимость с IPointy и возвращает ссылку на извлеченный интерфейс.

// Этот метод проверяет соответствие IPointy и, если это возможно,

// возвращает ссылку на интерфейс.

static IPointy ExtractPointyness(object o) {

 if (o is IPointy) return (IPointy)o;

 else return null;

}

С этим методом можно взаимодействовать так, как предлагается ниже.

static void Main(string[] args) {

 // Попытка извлечь IPointy из объекта Car.

 Car myCar = new Car();

 IPointy itfPt = ExtractPointyness(myCar);

 if (itfPt!= null) Console.WriteLine("Объект имеет {0} вершин.", itfPt.Points);

 else Console.WriteLine("Этот объект не реализует IPointy");

};

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

В качестве послесловия

Из книги Разгони свой сайт автора Мациевский Николай

В качестве послесловия Целью данной книги является показать важность (иногда по-настоящему критическую) клиентской оптимизации и осветить ключевые моменты и проблемные места. Очень хочется верить, что после прочтения книги у читателя сложилось целостное представление


Массивы в качестве параметров (и возвращаемых значений)

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Массивы в качестве параметров (и возвращаемых значений) После создания массива вы можете передавать его, как параметр, или получать его в виде возвращаемого значения. Например, следующий метод PrintArray() получает входной массив строк и выводит каждый элемент на консоль, а


Интерфейсы в качестве параметров

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

Интерфейсы в качестве параметров Поскольку интерфейсы являются полноценными типами .NET, вы можете конструировать методы, которые будут использовать интерфейсы, как параметры. Для примера предположим, что мы определили другой интерфейс с именем IDraw3D.// Моделируем


Делегаты в качестве параметров

Из книги Визуальное моделирование электронных схем в PSPICE автора Хайнеманн Роберт

Делегаты в качестве параметров Теперь, когда у нас есть новый тип делегата, который указывает на методы, получающие Car в виде параметра и не возвращающие ничего, мы можем создавать функции, которые принимают этот делегат в виде параметра. Для примера предположим, что у нас


Отображение параметров и возвращаемых значений методов

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

Отображение параметров и возвращаемых значений методов Итак, всё работает. Теперь немного усовершенствуем наше приложение. В частности, модифицируем вспомогательную функцию ListMethods(), чтобы получать не только имя метода, но и возвращаемое значение, а также входные


8.2. Сопротивление в качестве параметра

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

8.2. Сопротивление в качестве параметра При изучении урока 5 вам пришлось изрядно потрудиться, чтобы, «вручную» изменяя значение R в RC-фильтре нижних частот, получить диаграмму, изображенную на рис. 5.18. С помощью параметрического анализа вы сможете сделать это гораздо


22.4. Запуск в качестве демона

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

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


16.8 В качестве заключения

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

16.8 В качестве заключения В этой главе я постарался подробно рассказать об основных особенностях в работе с файлами в Ubuntu. Надеюсь, вы смогли разобраться что к чему и уловить основные моменты. Напоследок хочется заметить, что Ubuntu без какого-либо дополнительного


Выражения в качестве операндов

Из книги Linux программирование в примерах автора Роббинс Арнольд

Выражения в качестве операндов Операндом при увеличении или уменьшении значения TIMESTAMP, TIME, DATE или DATE в диалекте 1 может быть константа или выражение. Выражение может быть особенно полезным в ваших приложениях, когда вам надо увеличить или уменьшить значение в секундах,


Глава 5 О качестве снимков

Из книги автора

Глава 5 О качестве снимков Пожалуй, разговор о качестве снимков можно считать краеугольным камнем темы продажи своих фотографий на микростоковых сайтах. Очень часто, когда люди, в целом далекие от искусства фотографии, слышат о том, что кто-то продает свои фотоснимки и


19.5. Проверка значений, возвращаемых функцией

Из книги автора

19.5. Проверка значений, возвращаемых функцией Для проверки значения, возвращаемого вызванной функцией, можно воспользоваться кодом завершения последней команды, размешенной непосредственно после функции, которая вызывается из сценария. Например:check it ls_a directory $FILENAME #