Программирование на Visual C++. Архив рассылки
Шрифт:
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)]
Поделиться:
Популярные книги
Кротовский, может, хватит?
3. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
7.50
рейтинг книги
Совершенный: охота. Часть 2
4. Совершенный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Попаданка в деле, или Ваш любимый доктор - 2
2. Попаданка в деле, или Ваш любимый доктор
Любовные романы:
любовно-фантастические романы
7.43
рейтинг книги
Метатель. Книга 2
2. Метатель
Фантастика:
боевая фантастика
попаданцы
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Черный дембель. Часть 5
5. Черный дембель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
На границе империй. Том 7. Часть 2
8. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
6.13
рейтинг книги
Знойные ветры юга. Часть 1
8. Третий Рим
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Сирийский рубеж 2
6. Рубеж
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Черный Маг Императора 6
6. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
7.00
рейтинг книги
Монстр из прошлого тысячелетия
5. Соприкосновение миров
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
На границе империй. Том 7. Часть 5
11. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Адвокат империи
1. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
фэнтези
5.75
рейтинг книги
Боевая ботаника и с чем ее едят
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Черный Маг Императора 17
17. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00