• Пожаловаться

Алекс Jenter: Программирование на Visual C++. Архив рассылки

Здесь есть возможность читать онлайн «Алекс Jenter: Программирование на Visual C++. Архив рассылки» весь текст электронной книги совершенно бесплатно (целиком полную версию). В некоторых случаях присутствует краткое содержание. категория: Программирование / на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале. Библиотека «Либ Кат» — LibCat.ru создана для любителей полистать хорошую книжку и предлагает широкий выбор жанров:

любовные романы фантастика и фэнтези приключения детективы и триллеры эротика документальные научные юмористические анекдоты о бизнесе проза детские сказки о религиии новинки православные старинные про компьютеры программирование на английском домоводство поэзия

Выбрав категорию по душе Вы сможете найти действительно стоящие книги и насладиться погружением в мир воображения, прочувствовать переживания героев или узнать для себя что-то новое, совершить внутреннее открытие. Подробная информация для ознакомления по текущему запросу представлена ниже:

libcat.ru: книга без обложки

Программирование на Visual C++. Архив рассылки: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Программирование на Visual C++. Архив рассылки»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

РАССЫЛКА ЯВЛЯЕТСЯ ЧАСТЬЮ , НА САЙТЕ КОТОРОГО ВСЕГДА МОЖНО НАЙТИ ВСЮ НЕОБХОДИМУЮ РАЗРАБОТЧИКУ ИНФОРМАЦИЮ, СТАТЬИ, ФОРУМЫ, РЕСУРСЫ, ПОЛНЫЙ АРХИВ ПРЕДЫДУЩИХ ВЫПУСКОВ РАССЫЛКИ И МНОГОЕ ДРУГОЕ.

Алекс Jenter: другие книги автора


Кто написал Программирование на Visual C++. Архив рассылки? Узнайте фамилию, как зовут автора книги и список всех его произведений по сериям.

Программирование на Visual C++. Архив рассылки — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Программирование на Visual C++. Архив рассылки», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

Console.WriteLine("Атрибут Уровень на уровне класса: {0}.", att.Level);

Console.WriteLine("Атрибут Проверено на уровне класса: {0}.\n", att.Reviewed);

}

// Получить атрибуты уровня методов.

// Получить все методы данного класса и поместить их

// в массив объектов System.Reflection.MemberInfo.

MemberInfo[] MyMemberInfo = t.GetMethods();

// Вывести атрибуты всех методов класса

for (int i = 0; i < MyMemberInfo.Length; i++) {

att =

(DeveloperAttribute)Attribute.GetCustomAttribute(MyMemberInfo[i], typeof (DeveloperAttribute));

if (att == null)

Console.WriteLine("Метод {0} не имеет атрибута Developer.\n" ,

MyMemberInfo[i].ToString());

else {

Console.WriteLine("Атрибут Имя на уровне метода {0}: {1}.", MyMemberInfo[i].ToString(), att.Name);

Console.WriteLine("Атрибут Уровень на уровне метода {0}: {1}.", MyMemberInfo[i].ToString(), att.Level);

Console.WriteLine("Атрибут Проверено на уровне метода {0}: {1}.\n", MyMemberInfo[i].ToString(), att.Reviewed);

}

}

}

MC++

using namespace System;

using namespace System::Reflection;

public:

static void GetAttribute(Type* t) {

// Получить атрибут уровня класса.

DeveloperAttribute* att = __try_cast(Attribute::GetCustomAttribute(t, __typeof(DeveloperAttribute)));

if (att == 0)

Console::WriteLine(S"Класс {0} не имеет атрибута Developer.\n", t->ToString());

else {

Console::WriteLine(S"Атрибут Имя на уровне класса: {0}.", att->Name);

Console::WriteLine(S"Атрибут Уровень на уровне класса: {0}.", att->Level);

Console::WriteLine(S"Атрибут Проверено на уровне класса: {0}.\n", att->Reviewed);

}

// Получить атрибуты уровня методов.

// Получить все методы данного класса и поместить их

// в массив объектов System.Reflection.MemberInfo.

MemberInfo* MyMemberInfo __gc[] = t->GetMethods();

// Вывести атрибуты всех методов класса

for (int i = 0; i < MyMemberInfo.Length; i++) {

att =

__try_cast(Attribute::GetCustomAttribute(MyMemberInfo[i], __typeof(DeveloperAttribute)));

if (att == 0)

Console::WriteLine(S"Метод {0} не имеет атрибута Developer.\n" , MyMemberInfo[i]->ToString());

else {

Console::WriteLine(S"Атрибут Имя на уровне метода {0}: {1}.", MyMemberInfo[i]->ToString(), att->Name);

Console::WriteLine(S"Атрибут Уровень на уровне метода {0}: {1}.", MyMemberInfo[i]->ToString(), att->Level);

Console::WriteLine(S"Атрибут Проверено на уровне метода {0}: {1}.\n", MyMemberInfo[i]->ToString(), att->Reviewed);

}

}

}

Visual Basic.NET

Imports System

Imports System.Reflection

Public Shared Sub GetAttribute(t As Type)

' Получить атрибут уровня класса.

Dim att As DeveloperAttribute = _

ype(Attribute.GetCustomAttribute(t, GetType(DeveloperAttribute)), DeveloperAttribute)

If att Is Nothing Then

Console.WriteLine("Класс {0} не имеет атрибута Developer.", t.ToString())

Else

Console.WriteLine("Атрибут Имя на уровне класса: {0}.", att.Name)

Console.WriteLine("Атрибут Уровень на уровне класса: {0}.", att.Level)

Console.WriteLine("Атрибут Проверено на уровне класса: {0}.", att.Reviewed)

End If

' Получить атрибуты уровня методов.

' Получить все методы данного класса и поместить их

' в массив объектов

System.Reflection.MemberInfo.

Dim MyMemberInfo As MemberInfo() = t.GetMethods()

' Вывести атрибуты всех методов класса

Dim i As Integer

For i = 0 To MyMemberInfo.Length – 1

att =

CType(Attribute.GetCustomAttribute(MyMemberInfo(i), GetType(DeveloperAttribute)), DeveloperAttribute)

If att Is Nothing Then

Console.WriteLine("Метод {0} не имеет атрибута Developer.", MyMemberInfo(i).ToString())

Else

Console.WriteLine("Атрибут Имя на уровне метода {0}: {1}.", MyMemberInfo(i).ToString(), att.Name)

Console.WriteLine("Атрибут Уровень на уровне метода {0}: {1}.", MyMemberInfo(i).ToString(), att.Level)

Console.WriteLine("Атрибут Проверено на уровне метода {0}: {1}.", MyMemberInfo(i).ToString(), att.Reviewed)

End If

Next i

End Sub

Для доступа к методам и полям проверяемого класса используются методы класса System::Type. В этом примере сначала через Typeзапрашивается информация об атрибутах, определенных на уровне класса, затем, через метод Type.GetMethodsполучается информация обо всех атрибутах, определенных на уровне методов. Эта информация помещается в массив объектов типа System.Reflection.MemberInfo. Если нужны атрибуты свойств, используется метод Type.GetProperties, а для конструкторов – Type.GetConstructors. Класс Typeимеет множество методов для доступа к элементам типа, здесь описана только очень небольшая часть.

Пример

Демонстрационная программа, показывающая, как можно получать информацию из секций метаданных, написана на C#. На рисунке показана закладка, на которой можно увидеть значения атрибутов для сборки, на других закладках показывается аналогичная информация. Я не буду подробно описывать пример, кому надо, может скачать и скомпилировать его. Пример достаточно прост и разобраться в том, как получаются атрибуты, ни для кого не составит труда.

Читать дальше
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Программирование на Visual C++. Архив рассылки»

Представляем Вашему вниманию похожие книги на «Программирование на Visual C++. Архив рассылки» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё не прочитанные произведения.


Отзывы о книге «Программирование на Visual C++. Архив рассылки»

Обсуждение, отзывы о книге «Программирование на Visual C++. Архив рассылки» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.