E2209 Définitions de champ non autorisées dans le type interface (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Messages d'erreur et d'avertissement (Delphi)

Une interface a été rencontrée contenant des définitions de champs. Ceci n'est pas autorisé.


program Produce;
  type
    IBaseIntf = interface
      FVar : Integer;
      property Value : Integer read FVar write FVar;
    end;

begin
end.

Nous désirons avoir une propriété qui a une valeur associée. Cependant, comme les interfaces ne peuvent pas avoir de champs, cette idée ne fonctionnera pas.


program Solve;
    IBaseIntf = interface
      function Reader : Integer;
      procedure Writer(a : Integer);
      property Value : Integer read Reader write Writer;
    end;

begin
end.

Une solution élégante au problème décrit ci-dessus est de déclarer des procédures de définition et d'obtention de la propriété. Dans cette situation, toute classe implémentant l'interface doit fournir une méthode qui sera utilisée pour accéder aux données de la classe.