単項演算の実装
クラスを作成してカスタム バリアント型を有効にする への移動
カスタム バリアント型が標準の単項演算子(-、not)を操作できるようにするには、UnaryOp メソッドをオーバーライドしなければなりません。 UnaryOp
には、2 つのパラメータ --- オペランドの値、および、演算子 --- があります。 演算を実行するためにこのメソッドを実装し、オペランドを格納していた同じ変数を使用して、結果を返します。
たとえば、次の
UnaryOp
メソッドは、VarCmplx ユニットで定義される TComplexVariantType
からきています。
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;
論理演算子 not の場合、複素数に対しては意味をなさないため、このメソッドは RaiseInvalidOp
を呼び出して、ランタイム エラーを発生させます。