Чтение онлайн

на главную - закладки

Жанры

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

Jenter Алекс

Шрифт:

 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 <mscorlib.dll>

[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.

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

 __property virtual Boolean get_Reviewed { return reviewed; }

 __property virtual void set_Reviewed(Boolean value) { reviewed = value; }

}

Visual Basic.NET

Public Class <AttributeUsage(AttributeTargets.All)> DeveloperAttribute

 Inherits System.Attribute

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

 Private name As String

 Private level As String

 Private reviewed As Boolean

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

 Public Sub New(name As String, level As String)

Me.name = name

Me.level = level

Me.reviewed = False

 End Sub

 ' Свойство Name.

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

 Public Overridable ReadOnly Property Name As String

Get

Return name

End Get

 End Property

 ' Свойство Level.

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

 Public Overridable ReadOnly Property Level As String

Get

Return level

End Get

 End Property

 ' Свойство Reviewed.

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

 Public Overridable Property Reviewed As Boolean

Get

Return reviewed

End Get

Set

reviewed = value

End Set

 End Property

End Class

Применять этот атрибут можно, используя как полное имя DeveloperAttribute, так и сокращенное – Developer:

C#

[Developer("Иван Семенов", "1")]

[Developer("Иван Семенов", "1", Reviewed = true)]

Поделиться:
Популярные книги

Печать Пожирателя

Соломенный Илья
1. Пожиратель
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Печать Пожирателя

Привет из Загса. Милый, ты не потерял кольцо?

Лисавчук Елена
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Привет из Загса. Милый, ты не потерял кольцо?

Мастер 2

Чащин Валерий
2. Мастер
Фантастика:
фэнтези
городское фэнтези
попаданцы
технофэнтези
4.50
рейтинг книги
Мастер 2

Нечто чудесное

Макнот Джудит
2. Романтическая серия
Любовные романы:
исторические любовные романы
9.43
рейтинг книги
Нечто чудесное

Клан

Русич Антон
2. Долгий путь домой
Фантастика:
боевая фантастика
космическая фантастика
5.60
рейтинг книги
Клан

Имя нам Легион. Том 3

Дорничев Дмитрий
3. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 3

Запасная дочь

Зика Натаэль
Фантастика:
фэнтези
6.40
рейтинг книги
Запасная дочь

Убивать чтобы жить 7

Бор Жорж
7. УЧЖ
Фантастика:
героическая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 7

У врага за пазухой

Коваленко Марья Сергеевна
5. Оголенные чувства
Любовные романы:
остросюжетные любовные романы
эро литература
5.00
рейтинг книги
У врага за пазухой

Кодекс Охотника. Книга XXI

Винокуров Юрий
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXI

Генерал Скала и ученица

Суббота Светлана
2. Генерал Скала и Лидия
Любовные романы:
любовно-фантастические романы
6.30
рейтинг книги
Генерал Скала и ученица

Оцифрованный. Том 1

Дорничев Дмитрий
1. Линкор Михаил
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Оцифрованный. Том 1

Его маленькая большая женщина

Резник Юлия
Любовные романы:
современные любовные романы
эро литература
8.78
рейтинг книги
Его маленькая большая женщина

Хуррит

Рави Ивар
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Хуррит