русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Получение экземпляра типа Type


Дата добавления: 2015-06-12; просмотров: 464; Нарушение авторских прав


Получить экземпляр класса Type можно несколькими способами. Выбор способа зависит от условий задачи, и от того, какой информацией о типе вы располагаете при разработке программы (на момент компиляции).

1. Простейший случай получения экземпляра класса Type – когда тип определён в самой программе, или если при компиляции указана ссылка на сборку, содержащую данный тип. В этом случае экземпляр класса Type можно получить посредством операции Typeof(имя класса)

 

using System;

namespace App1

{ class Class1

{ static void Main()

{ Type type = typeof(Class1);

Console.WriteLine(type.FullName);

Console.ReadLine();



}

}

}

 

Следует подчеркнуть, что возможности среды .NET по работе с метаданными доступны из любого языка программирования, удовлетворяющего CLS (Common Language Specification). Поэтому всегда можно найти соответствующие конструкции в других языках среды .NET. Например, операции Typeof языка C# соответствуют операция __Typeof из MS C++ или оператор GetType из VB.NET.

2. Если есть экземпляр интересующего вас класса, то соответствующий ему экземпляр класса Type можно получить с помощью метода GetType. Все классы в среде .NET получают этот метод в наследство от класса Object.

 

Class1 app = new Class1();

Type type = app.GetType();

 

3. Имеется возможность перебрать все типы, определённые в сборке, и найти нужный класс по каким-либо критериям или выполнить необходимые действия со всеми классами в сборке. Вот так, например, можно напечатать имена всех типов, содержащихся в текущей сборке-приложении:

 

using System;

using System.Reflection;

namespace App1

{ class Class1

{ static void Main()

{ foreach (Type type in Assembly.GetExecutingAssembly().GetTypes())

Console.WriteLine(type.Name);

Console.ReadLine();



}

}

}

 

В этом примере для получения текущей сборки-приложения использован статический метод GetExetutingAssembly класса Assembly, затем с помощью метода GetTypes получен массив всех типов, содержащихся в текущей сборке.

Примечание. Следует обратить внимание на то, что в этом примере было использовано пространство имён System.Reflection. Это главное вместилище классов и других типов, имеющих отношение к метаданным и рефлексии. Большинство типов, которые рассматриваются ниже, определены в этом пространстве имён. Класс Type – исключение. Он настолько важен, что его описание помещено в пространство имён System.

4. Возможна ситуация, когда во время написания программы тип объектов, с которыми предстоит работать, еще неизвестен. Он станет известен, только во время выполнения программы. Способ получения имени класса во время исполнения программы может быть самым разным. Например, вы запрашиваете его у пользователя, или считываете при старте программы из файла конфигурации. В этом случае указанием только имени типа не обойтись. Необходимо указать, в какой именно сборке содержится данный тип. Эту сборку потом необходимо загрузить динамически.



<== предыдущая лекция | следующая лекция ==>
Экземпляр типа Type | Динамическая загрузка сборок


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 4.684 сек.