【发布时间】:2011-05-25 14:10:02
【问题描述】:
我正在尝试在 delphi 下创建一个名为 TRange 的通用类。这个想法是它可以是一个整数范围,也可以是一个单一的范围,或双精度等......
TRange 对象包含一些 T 类型的变量(maxValue、minValue、idealValue 等)。 TRange 包含一个函数,用于将它们转换为字符串。但是,由于 Delphi 是一种强类型语言,我需要指定“How-To”将不同的变量转换为字符串。
我可以使用GetTypeName(TypeInfo(T))获取T类型的typeName。一旦我知道哪种类型是 T,我想我可以这样做:
if(className = 'single') then
result := formatFloat('0.0', self.AbsMin as Single)
else
result := intToStr(self.AbsMin as Integer)
但是,编译器告诉我“运算符不适用于此操作数类型”。
所以,我想我的问题是:
有没有办法给泛型类赋予特异性???
【问题讨论】:
-
当然 AbsMin 属于 T 型 ;)。
-
Integer和Single标签不是很有用恕我直言。