Учебно-методический комплекс общее количество часов 58 ч. Лекции 28 ч
Download 2.46 Mb.
|
Язык программирования C#
17.3. Получение информации о типах
Оператор typeof() используется для получения объекта типа System.Type, заключающего в себе информацию о типе, переданном typeof(). Эту информацию можно за тем использовать либо для отражений, либо для приведений посредством is и as. Оператору typeof() передается имя некоторого типа, а он в свою очередь возвращает объект типа System.Type. System.Type type = typeof(int); Лист. 7.4 Оператор typeof() применяется для получения информации о типе по его имени. Возникает резонный вопрос: как же получить тип непосредственно из некоторого объекта? Для этого используется метод GetType(). Этот метод определен в базовом классе System.Object и неявно переопределяется каждым определенным вами типом. Напишем теперь небольшой пример, иллюстрирующий работы typeof(), GetType() и некоторыми членами класса System.Type. using System; using System.Reflection; namespace Reflection { class Program { static void Main(string[] args) { // ключевое слово typeof() Type t = typeof(string); Console.WriteLine("Полное имя типа: " + t.Name); Console.WriteLine("Пространство имен типа: " + t.Namespace); // метод GetType string MyString = "MyString"; t = MyString.GetType(); Console.WriteLine("Методы:"); MethodInfo[] methodInfo = t.GetMethods(); foreach (MethodInfo mInfo in methodInfo) { Console.WriteLine(mInfo.ToString()); } Console.WriteLine("Поля:"); MemberInfo[] memberInfo = t.GetFields(); foreach (MemberInfo mInfo in memberInfo) { Console.WriteLine(mInfo.ToString()); } Console.ReadLine(); } } } Лист. 8.5 В этом листинге мы получаем информацию о типе string посредством сначала typeof(), а затем GetType(). В этом листинге используются некоторые методы класса Type, которые будут рассмотрены позднее и о которых можно подробнее прочесть в MSDN. Полное имя типа: String Пространство имен типа: System Методы: Char get_Chars(Int32) Int32 get_Length() Int32 IndexOf(Char, Int32, Int32) ……. System.String Concat(System.String[]) System.String Intern(System.String) System.String IsInterned(System.String) System.TypeCode GetTypeCode() System.CharEnumerator GetEnumerator() System.Type GetType() Поля: System.String Empty Вывод. 8.2 Download 2.46 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling