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

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

Жанры

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

Jenter Алекс

Шрифт:

//…

 }

}

MC++

public gc class MyClass {

public:

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

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

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

[MyAttribute][YourAttribute]

 void MyMethod {

//…

 }

}

Visual Basic.NET

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

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

Public Class MyClass

 Public Sub <MyAttribute, YourAttribute> 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 _

 <AttributeUsage(AttributeTargets.Method)> MyAttribute

 Inherits Attribute

End Class

Public Class _

 <AttributeUsage(AttributeTargets.Method, AllowMultiple := True)> 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 <MyAttribute, MyAttribute> MyMethod

'…

 End Sub

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

 Public Sub <YourAttribute, YourAttribute> YourMethod

'…

 End Sub

End Class

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

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

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

• Bool

• Byte

• Char

• Double

• Float

• Int

• Long

• Short

• String

• Object

• System.Type

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

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

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

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

Соломенный Илья
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
рейтинг книги
Хуррит