为什么要宣布成员公开而不是发表?

时间:2015-08-19 14:43:56

标签: delphi rtti

将成员声明为published优于public

声明成员public而不是published会有什么好处吗? published有任何缺点吗?或者我应该始终声明成员published,作为规则吗?

PS:不重复;在发布我的问题之前,我已经阅读了这个问题及其所有答案。 "可能重复"问题解释了两个关键字之间的区别,但是在使用任何一个关键字时都没有给出指导,或者使用它们的优点/缺点。

1 个答案:

答案 0 :(得分:5)

声明已发布会产生存储成本,因为可执行文件的大小会膨胀以包含RTTI。宣布公开可以避免这种成本。它不太可能无关紧要,特别是考虑到现代Delphi可执行文件的庞大规模,因为它们执行的大量代码甚至从未执行过。

对于可在对象检查器中编辑的组件,publicpublished之间的差异更为显着。如您所说,这是组件如何确定在Object Inspector中可见的属性。有些属性应该在那里可见,有些则不可见。用户“TLama”提供了需要公开的属性的精细示例,但不应在对象检查器中进行编辑:ParentHandle等等。

除此之外,它归结为意见。完全取决于你决定做什么。