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

Тут можно читать онлайн Алекс Jenter - Программирование на Visual C++. Архив рассылки - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Программирование на Visual C++. Архив рассылки
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4.33/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

Программирование на Visual C++. Архив рассылки - описание и краткое содержание, автор Алекс Jenter, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

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

Программирование на Visual C++. Архив рассылки - читать книгу онлайн бесплатно, автор Алекс Jenter
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

C#

using System.Reflection;

[assembly:AssemblyName("Моя сборка")]

MC++

using namespace System::Reflection;

[assembly:AssemblyName(S"Моя сборка")];

Visual Basic.NET

Imports System.Reflection

При компиляции кода строка "Моя сборка" помещается в манифест сборки в секции метаданных. Этот атрибут можно увидеть с помощью дизассемблера MSIL (Ildasm.exe) или с помощью пользовательских средств.

Применение атрибутов на уровне модулей

Для применения атрибутов на уровне модулей используется ключевое слово Module, в остальном все как на уровне сборок.

Пользовательские атрибуты

Чтобы разрабатывать собственные атрибуты, не нужно изучать что-то принципиально новое. Если вы знакомы с объектно-ориентированным программированием и знаете, как разрабатывать классы, вы знаете уже практически все. Пользовательские атрибуты – это классы, тем или иным образом наследующие от System.Attribute. Также как и все другие классы, пользовательские атрибуты содержат методы для записи и чтения данных. Рассмотрим процесс создания пользовательского атрибута по шагам.

Применение атрибута AttributeUsageAttribute

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

C#

[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]

MC++

[AttributeUsage(AttributeTargets::All, Inherited = false, AllowMultiple = true)]

Visual Basic.NET

Класс System.AttributeUsageAttribute содержит три члена, которые важны для создания пользовательских атрибутов: AttributeTargets, Inheritedи AllowMultiple.

Поле AttributeTargets

В предыдущем примере используется флаг AttributeTargets.All. Этот флаг означает, что данный атрибут может применяться к любым элементам программы. С другой стороны, можно задать флаг AttributeTargets.Class, означающий, что атрибут применяется только к классам, или AttributeTargets.Method– для методов классов и интерфейсов. Подобным образом можно применять и пользовательские атрибуты.

Также можно использовать несколько экземпляров атрибута AttributeTargets. В следующем примере показано, как пользовательский атрибут может применяться к любому классу или методу:

C#

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]

MC++

[AttributeUsage(AttributeTargets::Class | AttributeTargets::Method)]

Visual Basic.NET

Свойство Inherited

Это свойство определяет, будет ли атрибут наследоваться классами, наследниками того, к которому этот атрибут применен. Это свойство может принимать два значения: trueили false.

C#

// По умолчанию Inherited = true.

public class MyAttribute : Attribute {}

// Явно задается false.

[AttributeUsage(Inherited = false)]

public class YourAttribute : Attribute {}

MC++

// По умолчанию Inherited = true.

public gc class MyAttribute : public System::Attribute {}

// Явно задается false.

[AttributeUsage(Inherited = false)]

public gc class YourAttribute : public System::Attribute {}

Visual Basic.NET

' По умолчанию Inherited := true.

Public Class _

MyAttribute

Inherits Attribute

End Class

Public Class _

YourAttribute

Inherits Attribute

End Class

Вышеописанные атрибуты затем применяются к методу класса MyClass:

C#

public class MyClass {

// В C# несколько атрибутов могут определяться в разных блоках,

// ограниченных скобками или в одном блоке – через запятую.

// Порядок следования атрибутов неважен.

[MyAttribute][YourAttribute]

public void MyMethod() {

//…

}

}

MC++

public gc class MyClass {

public:

// В MC++ несколько атрибутов могут определяться в разных блоках,

// ограниченных скобками или в одном блоке – через запятую.

// Порядок следования атрибутов неважен.

[MyAttribute][YourAttribute]

void MyMethod() {

//…

}

}

Visual Basic.NET

' В Microsoft Visual Basic.NET несколько атрибутов разделяются запятыми.

' Порядок следования атрибутов неважен.

Public Class MyClass

Public Sub MyMethod()

'…

End Sub

End Class

И, наконец, рассмотрим класс YourClass– наследник MyClass. С методом MyMethodэтого класса будет связан только атрибут MyAttribute.

C#

public class YourClass : MyClass {

// Этот метод имеет только атрибут MyAttribute.

public void MyMethod() {

//…

}

}

MC++

public gc class YourClass : public MyClass {

public:

// Этот метод имеет только атрибут MyAttribute.

void MyMethod() {

//…

}

}

Visual Basic.NET

Public Class YourClass

Inherits MyClass

' Этот метод имеет только атрибут MyAttribute.

Public Sub MyMethod()

'…

End Sub

End Class

Свойство AllowMultiple

Это свойство показывает, может ли атрибут применяться многократно к одному элементу. По умолчанию оно равно false, что значит – атрибут может использоваться только один раз. Рассмотрим следующий пример:

C#

// По умолчанию AllowMultiple = false.

public class MyAttribute : Attribute {}

[AttributeUsage(AllowMultiple = true)]

public class YourAttribute : Attribute {}

MC++

// По умолчанию AllowMultiple = false.

public gc class MyAttribute : public System::Attribute {}

[AttributeUsage(AllowMultiple = true)]

public gc class YourAttribute : public System::Attribute {}

Visual Basic.NET

' По умолчанию AllowMultiple = false.

Public Class _

MyAttribute

Inherits Attribute

End Class

Public Class _

YourAttribute

Inherits Attribute

End Class

Если используется несколько экземпляров атрибутов, MyAttributeзаставляет компилятор выдать сообщение об ошибке. Следующий фрагмент кода иллюстрирует правильное использование атрибута YourAttributeи неправильное – MyAttribute:

C#

public class MyClass {

// Ошибка – дублирование не разрешено.

[MyAttribute, MyAttribute]

public void MyMethod() {

//…

}

// Это допустимо.

[YourAttribute, YourAttribute] public void YourMethod() {

//…

}

}

MC++

public gc class MyClass {

public:

// Ошибка – дублирование не разрешено.

[MyAttribute, MyAttribute] void MyMethod() {

//…

}

// Это допустимо.

[YourAttribute, YourAttribute] void YourMethod() {

//…

}

}

Visual Basic.NET

Public Class MyClass

' Ошибка – дублирование не разрешено.

Public Sub MyMethod()

'…

End Sub

' Это допустимо.

Public Sub YourMethod()

'…

End Sub

End Class

Если свойства AllowMultipleи Inheritedустановлены в true, класс может наследовать атрибут и иметь еще экземпляры, примененные непосредственно к нему. Если же свойство AllowMultipleравно false, значения атрибутов родительского класса будут переписаны значениями этого же атрибута класса-наследника.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Алекс Jenter читать все книги автора по порядку

Алекс Jenter - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Программирование на Visual C++. Архив рассылки, автор: Алекс Jenter. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x