D2009中的泛型是否可用于大型项目?

时间:2009-09-08 10:12:53

标签: delphi generics delphi-2009

我非常沮丧。我正在使用Delphi 2009,并且很高兴在这个版本的Delphi中包含泛型。一切都在一开始就很好用,但是现在我在整个地方使用泛型我遇到了问题 - 大多数时候是一些内部错误,我甚至都看不到它们究竟在哪里造成的。我尝试多次重构代码以避免泛型问题,但总是遇到新的问题。

现在我决定完全删除泛型并使用一些动态强制转换来专门化我的类。不是很激动,但我没有看到另一种选择。我无法花时间追踪Delphi的内部编译器错误...

是否有人在大型项目中使用泛型而没有遇到此类问题?也许是我的错吗?或者是否无法在复杂的项目中使用它们?

我希望D2010修复所有这些内容。

2 个答案:

答案 0 :(得分:12)

我在Delphi 2009中广泛使用泛型,我可以说这并不容易,因为你经常被要求在ICE周围工作。更糟糕的是,泛型甚至搞乱了链接器,即你不能在包中使用它们(C ++ Builder包除外)。

所有这些麻烦似乎都在Delphi 2010中消失了;由于仿制药,我几乎没有看到过ICE。我需要使用我的代码来处理2009年和2010年:(

答案 1 :(得分:7)

D2009中的泛型支持起初非常糟糕。更新3修复了很多东西,但不是一切,并且在Generics.Collections.pas中至少留下了一个严重的错误。在某些方面,它实际上变得更糟,因为现在不是在编译器在某些泛型构造上扼流时给出语法错误,而是经常会出现内部编译器错误而你不知道是什么导致它。

2010年已经有了相当多的改进。在相当模糊的情况下仍然存在一些与仿制药相关的问题,但只要你不使用包装或在课堂帮助者中使用泛型,它们通常是安全的。或类似的奇怪事情。

底线:如果您想使用它们,请升级到2010。