Implémentation d'opérations unaires
Remonter à Création d'une classe pour le type variant personnalisé
Pour que le type variant personnalisé puisse fonctionner avec les opérateurs unaires standard ( -, not), vous devez redéfinir la méthode UnaryOp. UnaryOp
possède deux paramètres : la valeur de l'opérande et l'opérateur. Implémentez cette méthode pour effectuer l'opération et renvoyer le résultat en utilisant la même variable que celle qui contenait l'opérande.
Par exemple, la méthode UnaryOp
suivante vient de TComplexVariantType
, définie dans l'unité VarCmplx :
Delphi :
procedure TComplexVariantType.UnaryOp(var Right: TVarData; const Operator: TVarOp);
begin
if Right.VType = VarType then
case Operator of
opNegate:
TComplexVarData(Right).VComplex.DoNegate;
else
RaiseInvalidOp;
end
else
RaiseInvalidOp;
end;
Remarquez que pour l'opérateur logique not, qui n'a pas de sens pour des valeurs complexes, cette méthode appelle RaiseInvalidOp
pour provoquer une erreur d'exécution.