E2130 Impossible de lire une propriété en écriture seule (Delphi)

De RAD Studio
Aller à : navigation, rechercher

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

La propriété dont vous essayez de lire la valeur n'a pas spécifié de clause 'read', elle devient par conséquent une propriété en écriture seule.



program Produce;

  type
    Base = class
      s: String;

      property Password : String write s;
    end;

  var
    c: Base;
    s: String;

begin
  s := c.Password;
end.

Puisque c.Password n'a pas spécifié de clause read, il est impossible de lire sa valeur.



program Solve;

  type
    Base = class
      s: String;

      property Password : String read s write s;
    end;

  var
    c: Base;
    s: String;

begin
  s := c.Password;
end.

Une solution simple à ce problème, si vous avez le code source, serait d'ajouter une clause read à la propriété write-only. Mais, ajouter une clause read n'est pas toujours souhaitable et peut provoquer des déficiences dans un système de sécurité. Prenez, par exemple, une propriété write-only appelée 'Password', comme ici : vous ne voudrez certainement pas permettre occasionnellement à des programmes d'utiliser cette classe pour lire le mot de passe stocké. Si une propriété a été créée en écriture seule, il existe probablement une bonne raison pour cela et vous devez réexaminer pourquoi vous voulez lire cette propriété.