Получение интерфейсных ссылок: ключевое слово is
Получение интерфейсных ссылок: ключевое слово is
Можно также проверить реализацию интерфейса с помощью ключевого слова is. Если соответствующий объект не совместим указанным интерфейсом, будет возвращено значение false. А если тип совместим с интерфейсом, вы можете смело вызвать его члены без использования логики try/catch.
Для примера предположим, что мы изменили массив типов Shape так, что теперь некоторые его члены реализуют IPointy. Вот как с помощью ключевого слова is можно выяснить, какие из элементов в массиве поддерживают этот интерфейс.
static void Main(string[] args) {
…
Shape[] s = {new Hexagon(), new Circle(), new Triangle("Joe"), new Circle("JoJo")};
for (int i = 0; i ‹ s.Length; i++) {
// Напомним, что базовый класс Shape определяет абстрактный
// член Draw(), поэтому все формы могут отображать себя.
s[i].Draw()
// Кто с вершинами?
if (s[i] is IPointy) Console.WriteLine("-› Вершин: {0} ", ((IPointy)s[i]).Points);
else Console.WriteLine("-› {0} без вершин!", s[i].PetName);
}
}
Соответствующий вывод показан на рис. 7.2.

Рис 7.2. Динамическое обнаружение реализованных интерфейсов
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Получение прямых ссылок на файлы хостингов
Получение прямых ссылок на файлы хостингов Постоянно разрабатываются так называемые личеры (от англ. leech — пиявка) ссылок — программы и веб-сайты, предназначенные для обхода любых ограничений файлообменных ресурсов и получения непосредственно прямых ссылок на
Получение естественных ссылок
Получение естественных ссылок Естественными ссылками считаются ссылки, размещенные пользователями, рекомендующими тот или иной контент либо проект в целом. Такая ссылка характеризуется рядом особенностей.? В анкоре отсутствуют ключевые слова. Чаще всего анкорами
2. Магическое слово «ДЛЯ»
2. Магическое слово «ДЛЯ» Мы уже говорили, что это слово хорошо работает. Ваш курс может быть для новичков, для продвинутых, для женщин или для тех, кому за 50. То есть для определенной категории людей: сетевиков, инфобизнесменов, просто бизнесменов и людей, которые лишились
Реализация интерфейсных маршалеров
Реализация интерфейсных маршалеров В предыдущем разделе было показано четыре интерфейса, используемых архитектурой стандартного маршалинга. Хотя и допустимо реализовать интерфейсные маршалеры с помощью ручного кодирования на C++, на практике это осуществляется редко.
Ключевое средство отладки: окно Watches
Ключевое средство отладки: окно Watches Когда вы освоите работу с окном Locals, работа с окном Watches (Окно контролируемых выражений) покажется просто забавой. Окно Watches делает, по сути, то же самое, что и окно Locals, но с одним очевидным отличием - те выражения, значения которых будут
Ключевое слово static
Ключевое слово static Как уже говорилось в этой главе, члены классов (и структур) в C# могут определяться с ключевым cловом static В этом случае соответствующий член должен вызываться непосредственно на уровне класса, а не экземпляра типа. Для иллюстрации рассмотрим "знакомый"
Хранение семейных тайн: ключевое слово protected
Хранение семейных тайн: ключевое слово protected Вы уже знаете, что открытые элементы непосредственно доступны отовсюду, а приватные элементы недоступны для объектов вне класса, определяющего эти элементы. Язык C#, занимающий лидирующие позиции среда многих других
Получение интерфейсных ссылок: ключевое слово is
Получение интерфейсных ссылок: ключевое слово is Можно также проверить реализацию интерфейса с помощью ключевого слова is. Если соответствующий объект не совместим указанным интерфейсом, будет возвращено значение false. А если тип совместим с интерфейсом, вы можете смело
Массивы интерфейсных типов
Массивы интерфейсных типов Следует понимать, что один и тот же интерфейс может реализовываться многими типами, даже если эти типы не находятся в рамках одной иерархии классов. В результате можно получать очень мощные программные конструкции, Предположим, например, что
Ключевое слово checked
Ключевое слово checked Вы, несомненно, прекрасно знаете, что любой числовой тип данных имеет свои строго заданные верхний и нижний пределы (значения которых можно выяснить программными средствами с помощью свойств MaxValue и MinValue). При выполнении арифметических операций с
Ключевое слово unchecked
Ключевое слово unchecked В предположении, что вы активизировали проверку переполнения для всего проекта, как разрешить игнорирование переполнений для тех блоков программного кода, где "молчаливая реакция" на переполнение вполне приемлема? Поскольку флаг /checked предполагает
Ключевое слово sizeof
Ключевое слово sizeof В заключение обсуждения вопросов, связанных с небезопасным контекстом в C#, рассмотрим ключевое слово sizeof. Как и в C(++), ключевое слово C# sizeof используется для того, чтобы выяснить размер в байтах типа, характеризуемого значениями (но не ссылочного типа), и
КЛЮЧЕВОЕ СЛОВО return
КЛЮЧЕВОЕ СЛОВО return Принципы программирования на языке Си основаны на понятии функции. В представленных ранее примерах программирования мы уже воспользовались несколькими функциями: printf( ), scanf( ), getchar( ), putchar( ) и strlen( ). Эти функции являются системными, однако мы
Ключевое слово this
Ключевое слово this Ключевое слово this представляет собой указатель на текущий объект класса. Методы класса могут использовать ключевое слово this чтобы получить указатель на объект для которого вызван данный метод. Указатель this представляет собой постоянную величину, вы не