【发布时间】:2021-10-25 11:15:44
【问题描述】:
我正在尝试将T 类型的通用变量转换为string。
TMyTest = class
class function GetAsString<T>(const AValue : T) : string; static;
end;
...
uses
System.Rtti;
class function TMyTest.GetAsString<T>(const AValue : T) : string;
begin
Result := TValue.From<T>(AValue).ToString();
end;
使用多种类型(如Integer、Double、Boolean...)效果很好,但使用Variant 变量会“失败”。
procedure TForm1.FormCreate(Sender: TObject);
var
Tmp : Variant;
begin
Tmp := 123;
ShowMessage(TMyTest.GetAsString<Variant>(Tmp));
end;
它产生以下输出:
(变体)
我期待VarToStr 函数获得相同的输出(但我不能将该函数与泛型变量一起使用):
123
【问题讨论】:
标签: delphi generics type-conversion delphi-xe7