我有一个Delphi泛型类,其中暴露了一个带有泛型类型参数的函数。在这个函数内部,我需要将泛型类型的实例传递给另一个期望Variant类型的对象。类似于这样:
type
IMyInterface = interface
DoStuff(Value: Variant);
end;
TMyClass<T> = class
FMyIntf: IMyInterface
procedure DoStuff(SomeValue: T);
end;
[...]
procedure MyClass<T>.DoStuff(SomeValue: T);
begin
FMyIntf.DoStuff((*convert SomeValue to Variant here*));
end;
我尝试使用Rtti.TValue.From(SomeValue).AsVariant。这对于整数类型有效,但对于布尔类型则会出问题。 我不太明白为什么,因为通常我应该能够将布尔值分配给变体...
有更好的方法进行此转换吗? 我只需要它适用于简单的内置类型(不包括枚举和记录)