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

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

Жанры

Программирование на 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
рейтинг книги
Зубных дел мастер

Бывшие. Война в академии магии

Берг Александра
2. Измены
Любовные романы:
любовно-фантастические романы
7.00
рейтинг книги
Бывшие. Война в академии магии

Идеальный мир для Лекаря 7

Сапфир Олег
7. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 7

Возвышение Меркурия. Книга 3

Кронос Александр
3. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 3

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

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

Хозяин Теней

Петров Максим Николаевич
1. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней

Опасная любовь командора

Муратова Ульяна
1. Проклятые луной
Фантастика:
фэнтези
5.00
рейтинг книги
Опасная любовь командора

Друд, или Человек в черном

Симмонс Дэн
Фантастика:
социально-философская фантастика
6.80
рейтинг книги
Друд, или Человек в черном

Волхв

Земляной Андрей Борисович
3. Волшебник
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Волхв

Мастер Разума VII

Кронос Александр
7. Мастер Разума
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума VII

Всемирная энциклопедия афоризмов. Собрание мудрости всех народов и времен

Агеева Елена А.
Документальная литература:
публицистика
5.40
рейтинг книги
Всемирная энциклопедия афоризмов. Собрание мудрости всех народов и времен

Сумеречный Стрелок 5

Карелин Сергей Витальевич
5. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 5

Морской волк. 1-я Трилогия

Савин Владислав
1. Морской волк
Фантастика:
альтернативная история
8.71
рейтинг книги
Морской волк. 1-я Трилогия

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле