如何创建仅包含基本类型的泛型类?
TField<T: xxx> = class
private
FValue: T;
public
property Value: T read FValue write FValue;
end;
我不需要接口,类等,我只需要布尔,整数,浮点数等......
还是有另一种方法可以做到这一点?
由于
答案 0 :(得分:7)
您可以使用“record”关键字来约束值类型(不是引用类型):
TField<T: record> = class
private
FValue: T;
public
property Value: T read FValue write FValue;
end;
答案 1 :(得分:1)
我不确定我的问题是否正确,但如果你想要一个可以容纳不同原始数据类型的变量,你可能会看一下Variant数据类型。
你不需要泛型; - )
答案 2 :(得分:1)
Delphi / Win32型系统不是 rooted(内置简单类型, 记录和类没有 共同的祖先)和原始类型 不能/不实现接口
所以很可能你不能将泛型类限制为原始类型(而不是允许“where T:struct”的C#)
答案 3 :(得分:0)
如果您想限制可用于通用的类型,您只需在创建中检查有效类型吗?