Présentation des attributs

De RAD Studio
Aller à : navigation, rechercher

Remonter à Attributs (RTTI)

Introduit le concept des attributs, leur cas d'utilisation général et certaines de leurs restrictions de base dans le langage Delphi.

Remarque : Les attributs Delphi ne sont pas supportés dans C++Builder. Pour plus d'informations sur RTTI dans C++Builder, voir Identification RTTI de Delphi et C++Builder.

Introduction

Les attributs représentent une fonctionnalité du langage Delphi qui permet l'annotation des types et des membres de types avec des objets spéciaux qui transportent des informations supplémentaires. Ces informations peuvent être interrogées à l'exécution. Les attributs étendent le modèle orienté objet normal avec des éléments orientés aspect.

En général, les attributs sont utiles lors de la construction de frameworks à usage général qui analysent des types structurés tels que les objets ou les enregistrements à l'exécution et introduisent un nouveau comportement basé sur des informations supplémentaires fournies par les attributs annotés.

Attributs et RTTI

Les attributs ne modifient pas le comportement des types ou des membres par eux-mêmes. Le code consommateur doit interroger de façon spécifique leur existence et prendre les actions appropriées quand cela est nécessaire. Pour être en mesure d'attacher un attribut à une entité dans le binaire compilé, vous devez d'abord obtenir les informations RTTI émises pour cette entité. Cela signifie que les types qui désactivent de manière explicite les informations RTTI n'acceptent pas l'annotation d'attributs. Par exemple, dans le code suivant, SomeCustomAttribute ne sera pas émis au binaire compilé, car les informations RTTI sont désactivées spécifiquement pour la classe TDerivedObject.

type
  {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
  TDerivedObject = class(TObject)
    [SomeCustomAttribute()]
    procedure Shoot;
  end;

Rubriques

Voir aussi