В Delphi 2010 появились пользовательские атрибуты, которые можно добавлять в объявления типов и методы.Для каких языковых элементов можно использовать пользовательский атрибут?
Примеры, которые я нашел до сих пор, включают объявления классов, поля и методы.(И универсальные классы AFAIK не поддерживают пользовательские атрибуты).
Некоторые примеры приведены в этой статье .Похоже, что переменные (внешние по отношению к любому объявлению класса) также могут иметь атрибуты.
Исходя из этой статьи, атрибуты можно использовать для
- полей и методов класса и записи
- параметры метода
- свойства
- объявления нелокальных перечислений
- объявления нелокальных переменных
Существуют ли другие языковые элементы, где атрибутымогут быть размещены?
Обновление: в этой статье указывается, что настраиваемые атрибуты можно размещать перед свойствами: http://francois -piette.blogspot.de / 2013/01 / using-custom-attribute-for-data.html
Содержит этот пример кода:
type
TConfig = class(TComponent)
public
[PersistAs('Config', 'Version', '1.0')]
Version : String;
[PersistAs('Config', 'Description', 'No description')]
Description : String;
FTest : Integer;
// No attribute => not persistent
Count : Integer;
[PersistAs('Config', 'Test', '0')]
property Test : Integer read FTest write FTest;
end;
Я полагаю, что есть также способ чтения атрибутов в аргументах методов, таких как
procedure Request([FormParam] AUsername: string; [FormParam] APassword: string);