gpt4 book ai didi

delphi - 使用 RTTI 在运行时查找 Delphi 中的所有类助手?

转载 作者:行者123 更新时间:2023-12-03 15:08:01 25 4
gpt4 key购买 nike

Delphi 2010 中的扩展 RTTI 是否提供了列出定义的 Class and Record Helpers 的方法在运行时?

据我所知Delphi does not show a hint or warning当为一个类定义多个类助手时,类助手检测可能是“质量保证”中的一个有用的例程。

附:当然,我知道我永远不应该使用没有源代码的第三方组件或库,这将使 grep 类帮助器变得容易。

最佳答案

由于类帮助程序仅根据范围内“最接近”的帮助程序应用于类,因此类根本无法知道帮助程序的存在。例如,您可以在您的单元中创建一个类(class)助手来“帮助”您没有来源的另一个单元中的类(class)。另一个单元的类(class)对任何助手一无所知。如果它确实有这些知识,那么就必须重新编译以考虑到这一点......这会导致下一个问题;

考虑一下:您可以在一个公共(public)单元中声明一个类,该类可以被整个应用程序中的许多其他单元使用。在每个单元中,您都可以使用不同的方法和“帮助器”函数为这个公共(public)类声明一个新的帮助器。由于每个单元对也声明自己的助手的其他单元一无所知,因此根据设计,无法以某种方式合并所有助手。现在考虑一下这个公共(public)单元现在跨预编译的包边界。

类(class)助手是诱人的小异教徒。他们许诺名誉和财富,但往往在你屈服于他们的诡计很久之后,他们就会带来死亡和毁灭。

因此,将它们引入该语言解决了非常具体的问题,即“看似”将功能引入现有框架的能力。只要您遵守“只有一个助手”的规则,并且不偏离这条道路,您可能相对毫发无伤。无论如何,您需要具备贝奥武夫、列奥尼达(斯巴达)和弗罗多·巴金斯的肠道毅力才能在这些水域中航行。

考虑到这一点,在 RAD Studio 团队中,我们不愿意使用可以避免的类助手。当我们使用它们时,在我们开始之前就已经形成了一个适当的方阵......

这里有龙...

关于delphi - 使用 RTTI 在运行时查找 Delphi 中的所有类助手?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2239447/

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