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

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é.