10

私の意見では、必須のメソッドがTValueから欠落しているようです。TValue.Equals(TValue)。

したがって、2つのTValueを比較するための高速で適切な方法は、できればTValue.ToString()を使用せずに、バリアントやレコードなどの間で誤った一致を許可する方法です。

4

1 に答える 1

14

Delphi-Mocksには2つの機能があります。

function CompareValue(const Left,Right : TValue): Integer;
function SameValue(const Left, Right: TValue): Boolean;

TValueのレコードヘルパーを使用すると、次のこともできます。TValue.Equals(TValue);

Apacheの条件の下で、StefanGlienkeの許可の下でライセンス供与されています。

これがStefanによる元のソースです:delphisorcery

バリアントの機能を拡張する必要がある場合は、以下を追加します。

function TValueHelper.IsVariant: Boolean;
begin
  Result := TypeInfo = System.TypeInfo(Variant);
end;

挿入します

if Left.IsVariant and Right.IsVariant then
begin
  Result := Left.AsVariant = Right.AsVariant;
end else

関数内のisString比較の後SameValue

于 2012-03-21T08:47:35.810 に答える