Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Топ:
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Интересное:
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Дисциплины:
2018-01-29 | 167 |
5.00
из
|
Заказать работу |
|
|
Класс | Описание | Реализуемые интерфейсы |
ArrayList | Динамически изменяемый по размерам массив объектов любого типа | ICollection, IEnumerable, IEnumerator, IList, ICloneable |
HashTable | Коллекция объектов, идентифицируемая по числовому ключу | ICollection, IDictionary, ICloneable, IEnumerable |
Queue | Стандартная очередь или последовательный список (то есть каждый объект обрабатывается по порядку) | ICollection, IEnumerable, ICloneable |
Stack | Стек, обеспечивающий функциональные возможности стека: добавление в стек Push(…), извлечение Pop(…). | ICollection, IEnumerable, ICloneable |
Итак, типы пространства имён System.Collections используют общие функциональные возможности. В этом и заключается суть программирования на основе интерфейсов. При реализации одного и того же интерфейса в разных классах мы получаем возможность обращаться одинаково с различными типами объектов. Такой механизм называется интерфейсным полиморфизмом.
Динамическая идентификация типов. Проверка типа с помощью ключевого слова is. Использование операторов as, typeof.
Принципы обобщённого программирования (абстрагирование и иерархия) были рассмотрены при изучении интерфейсов и коллекций. Динамическая идентификация типов позволяет распознать тип данных во время работы программы. Она используется при работе с массивом объектов базового класса, а так же для проверки удачно ли выполнена операция «приведение к типу». Динамическая идентификация типов является ключевым компонентом средства – отражение (предоставление информации о типе).
В C# динамическую идентификацию типов поддерживают три ключевых слова: is, as, typeof.
Проверка типа с помощью ключевого слова – is (является ли)
С помощью is можно определить: имеет ли рассматриваемый объект заданный тип. Общая форма его записи:
|
Выражение is Тип.
Тип выражения сравнивается с указанным типом и возвращается true или false.
Задание: В проекте Планиметрия объявить объекты класса Point и Otrezok, распознать типы с помощью ключевого слова is.
//В Main():
Point T1 = new Point(-28,39);
Point T2 = new Point(2, 5);
Otrezok Otr1 = new Otrezok(T1,T2);
///Напишем логическое выражение:
//1)
if (T1 is Point)
Console.WriteLine("Объект Т1 имеет тип Point");
//Выполнить!
//2)
if (Otr1 is Point)
Console.WriteLine("Объект Otr1 совместим с типом Point");
//Выполнить!
// Получим true, так как отрезок наследуется от класса Point, т.е совместим с ним.
//3)
if (T1 is Otrezok)
Console.WriteLine("Объект T1 совместим с типом Otrezok");
//Выполнить!
//Получим false, ведь класс Point не наследуется от класса Otrezok.
//4)
if (T2 is Object)
Console.WriteLine("T2 - это объект");
//Выполнить!
4.2. Использование оператора as (как)
Иногда во время работы программы требуется выполнить операцию приведения типов (явное приведение), не генерируя исключения в случае, если попытка будет неудачной. Для этого предусмотрен оператор as.
Общая форма его записи:
Выражение as Тип.
В отличие от слова is, если операция прошла успешна, то возвращается ссылка на указанный тип, а иначе возвращается null -ссылка. Оператор as – альтернатива слову is.
Задание: Проверить, можно ли объект T1 использовать как отрезок.
//В Main():
if (T1 as Otrezok!= null)
Otr1 = (Otrezok)T1;
else Otr1 = null;
if (Otr1 == null)
Console.WriteLine("Приведение типов не разрешено!");
else
Console.WriteLine("Приведение типов разрешено!");
//Выполнить!
Использование оператора typeof
Иногда нужно получить информацию о типе данных. Для таких случаев в C# предусмотрен оператор typeof (Тип). Он использует класс System.Type для получения данных об указанном типе.
Задание: В проекте Планиметрия получить полное имя типа заданного класса SteamReader (класс для создания входного потока символов, текстового файла).
//В Main():
//Объявим объект класса Type:
Type Ob = typeof(StreamReader);
Console.WriteLine("Полное имя типа " + Ob.FullName);
//Выполнить!
|
if (Ob.IsClass)
Console.WriteLine("Это - класс!");
else
Console.WriteLine("Это - не класс");
//Выполнить!
if (Ob.IsAbstract)
Console.WriteLine("Это - абстрактный класс!");
else
Console.WriteLine("Это - конкретный класс!");
//Выполнить!
Задание: Аналогично получить информацию о своём классе Otrezok.
Type ob = typeof(Otrezok);
Console.WriteLine("Полное имя типа " + ob.FullName);
//Выполнить!
if (ob.IsClass)
Console.WriteLine("Это - класс!");
else
Console.WriteLine("Это - не класс");
//Выполнить!
if (ob.IsAbstract)
Console.WriteLine("Это - абстрактный класс!");
else
Console.WriteLine("Это - конкретный класс!");
//Выполнить!
|
|
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!