gpt4 book ai didi

delphi - 使用 DeHL 集合库中的 THashSet 时出错

转载 作者:行者123 更新时间:2023-12-03 15:00:40 27 4
gpt4 key购买 nike

我对 Delphi 还很陌生,我正在尝试使用 DEHL Collections 库。 (参见 http://code.google.com/p/delphi-coll/ )从 IDE 的角度来看,我遇到了一些麻烦。它可以正确编译和运行,但 Delphi XE 在我使用 HashSet 库的任何地方都会显示错误。最大的不满是它阻止我使用代码完成。

我收到错误的第一个位置是在对象声明中:

uses
SysUtils, Windows, Collections.Base, Collections.Sets, Collections.Lists,
adscnnct, adstable,
uOtherClass;

type
OneClass = class(OtherClass)
private
_bad: THashSet<string>; // THashSet underlined
_good: TList<string>; // No problems
end;

错误指出:“类型参数与约束不匹配”

我不认为这是配置,因为我可以很好地使用 TList,但这是我的设置方式:我已将库复制到 Projects/Libs/DeHLCollections/Library 并将库编译到 Projects/Libs/垃圾桶。我已将 bin 目录包含在我的全局库路径中,这使其能够编译和运行。我也尝试过将所有内容(/libs、/DeHLCollections、/Library)添加到其中,希望 IDE 能够帮助我,但它似乎没有帮助。

无论如何要解决这个问题,还是我必须处理它?<​​/p>

使用 DeHL Collections 版本 1.1.1.119

最佳答案

欢迎解决使用泛型负载代码带来的麻烦。 DeHL 和泛型在 Delphi XE 中的工作效果比任何以前的 Delphi 版本都要好得多,但这并不等同于“没有任何问题”。我遇到的问题和你的一模一样。

我的观点是,DeHL 的所有迹象都显示出它是由一位 Delphi 程序员大师编写的,并且从某些方面来说,它是一件美丽的事情。它也是巨大痛苦的根源,但这并不是它自己的错。

Delphi 包含的不是一两个,而是至少三个(也许是四个?)独立的解析器,包括完整的编译器解析器,以及一些用于错误洞察(您在构建之前看到的错误)之类的 IDE 解析器和代码完成数据解析器。每个在泛型方面都有不同的语言支持限制。也许可以编写 DeHL 来避免所有各种 Delphi 解析器的解析器问题。我还没有看到过显示限制的指南,但如果复杂类型声明的形式为TSomething<TSomething<ISomethingElse>,TBar<IFoo>>,我不会感到惊讶。破坏了其中一些解析器。

如果你打算大量使用泛型,你不妨关闭代码完成和错误洞察。您可能还想经常保存,并准备好遇到很多编译器问题。并且也不要尝试编译大量泛型代码并将其放入包中。当我编写基于泛型的代码时,我经历过很多 URW 和 AV(内部编译器错误)。我发现 Delphi 编译器团队非常擅长修复所报告的任何内容,但是当我限制自己使用 Delphi 附带的 Generics.Collections 而不是使用其他基于泛型的代码时,泛型对我来说确实是最稳定的。似乎可以使用泛型功能编写东西,IDE 和双向工具以及代码完成尚未完全准备好处理。这意味着,非凡的宇宙通用能力是以牺牲经典 RAD IDE 生产力功能为代价的。

话虽这么说,latest DeHL sources from Subversion对我来说工作正常,构建和运行没有错误,但整个 DeHL 集合的最新源 ZIP 对我来说有问题。

我预计在 Delphi 接下来的几个版本中,无论发现什么问题(DeHL 似乎是一个突破界限的好地方,这也是我非常喜欢它的原因之一)已修复,您不会想知道为什么重泛型会破坏您的 IDE 功能,因为它们都会再次工作。

关于delphi - 使用 DeHL 集合库中的 THashSet 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6754991/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com