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);