Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Топ:
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Интересное:
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Дисциплины:
|
из
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("Это - конкретный класс!");
//Выполнить!
|
|
|
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!