Алекс 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
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать
Типы данных, допустимые в атрибутах

Атрибут может содержать поля следующих типов:

• Bool

• Byte

• Char

• Double

• Float

• Int

• Long

• Short

• String

• Object

• System.Type

Открытые перечислимые типы, вложенные (если вложены) в открытые типы

Попытка использовать в классе, реализующем атрибут другие типы, приводит к ошибкам компиляции.

Определение атрибутивного класса

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

C#

// Этот атрибут может применяться только к методам

public class MyAttribute : System.Attribute {

// …

}

MC++

// Этот атрибут может применяться только к методам

public gc class MyAttribute : System.Attribute {

// …

}

Visual Basic.NET

' Этот атрибут может применяться только к методам

Public Class MyAttribute

Inherits System.Attribute

' …

End Class

Этот пример показывает следующие положения:

• Атрибутивные классы должны объявляться как открытые

• По соглашению, имена классов должны заканчиваться словом Attribute. Хотя это и необязательно, рекомендуется поступать так для улучшения читаемости текста. При использовании атрибута это слово необязательно.

• Все атрибутивные классы должны, так или иначе, наследовать от System.Attribute.

• В Microsoft Visual Basic все пользовательские атрибутивные классы должны иметь атрибут AttributeUsageAttribute.

Определение конструкторов

Атрибуты инициализируются конструкторами, так же как обычные классы. Следующий фрагмент кода иллюстрирует типичный конструктор атрибута. Этот открытый конструктор принимает один параметр и инициализирует переменную класса.

C#

public MyAttribute(bool myvalue) {

this.myvalue = myvalue;

}

MC++

public:

MyAttribute(bool myvalue) {

this->myvalue = myvalue;

}

Visual Basic.NET

Public Sub New(newvalue As Boolean)

Me.myvalue = newvalue

End Sub

Конструкторы можно перегружать, чтобы принимать различные комбинации параметров. Если для атрибутивного класса определены свойства, для инициализации можно использовать комбинацию позиционных и именованных параметров. Обычно все обязательные параметры объявляются как позиционные, а необязательные как именованные.

Следующий пример показывает примеры использования параметризованного конструктора для инициализации атрибута. Здесь предполагается, что атрибут имеет обязательный параметр типа Boolean и необязательный типа String.

C#

// Один обязательный (позиционный) и один

// необязательный (именованный) параметры.

[MyAttribute(false, OptionalParameter = "дополнительные данные")]

// Один обязательный (позиционный) параметр.

[MyAttribute(false)]

MC++

// Один обязательный (позиционный) и один необязательный

//(именованный) параметры.

[MyAttribute(false, OptionalParameter = S"дополнительные данные")]

// Один обязательный (позиционный) параметр.

[MyAttribute(false)]

Visual Basic.NET

' Один обязательный (позиционный) и один необязательный

'(именованный) параметры.

' …

' Один обязательный (позиционный) параметр.

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

C#

// Именованный параметр помещается перед позиционным.

[MyAttribute(OptionalParameter = "дополнительные данные", false)]

MC++

// Именованный параметр помещается перед позиционным.

[MyAttribute(OptionalParameter = S"дополнительные данные", false)]

Visual Basic.NET

' Именованный параметр помещается перед позиционным.

Определение свойств

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

C#

public bool MyProperty {

get {

return this.myvalue;

}

set {

this.myvalue = value;

}

}

MC++

public:

__property bool get_MyProperty() { return myvalue; }

__property void set_MyProperty(bool value) { myvalue = value; }

protected:

bool myvalue;

}

Visual Basic.NET

Public Property MyProperty As Boolean

Get

Return Me.myvalue

End Get

Set

Me.myvalue = value

End Set

End Property

Пример пользовательского атрибута

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

C#

[AttributeUsage(AttributeTargets.All)]

public class DeveloperAttribute : System.Attribute {

// Закрытые поля.

private string name;

private string level;

private bool reviewed;

// Конструктор принимает два обязательных параметра: имя и уровень.

public DeveloperAttribute(string name, string level) {

this.name = name;

this.level = level;

this.reviewed = false;

}

// Свойство Name.

// Только для чтения.

public virtual string Name {

get {

return name;

}

}

// Свойство Level.

// Только для чтения.

public virtual string Level {

get {

return level;

}

}

// Свойство Reviewed.

// Чтение / Запись.

public virtual bool Reviewed {

get {

return reviewed;

}

set {

reviewed = value;

}

}

}

MC++

#using

[AttributeUsage(AttributeTargets::All)]

public __gc class DeveloperAttribute : public System::Attribute {

private:

// Закрытые поля.

String* name;

String* level;

Boolean reviewed;

public:

// Конструктор принимает два обязательных параметра: имя и уровень.

DeveloperAttribute(String* name, String* level) {

this->name = name;

this->level = level;

this->reviewed = false;

}

// Свойство Name.

// Только для чтения.

__property virtual String* get_Name() { return name; }

// Свойство Level.

// Только для чтения.

__property virtual String* get_Level() { return level; }

// Свойство Reviewed.

// Чтение / Запись.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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