将成员声明为published
优于public
:
声明成员public
而不是published
会有什么好处吗? published
有任何缺点吗?或者我应该始终声明成员published
,作为规则吗?
PS:不重复;在发布我的问题之前,我已经阅读了这个问题及其所有答案。 "可能重复"问题解释了两个关键字之间的区别,但是在使用任何一个关键字时都没有给出指导,或者使用它们的优点/缺点。
答案 0 :(得分:5)
声明已发布会产生存储成本,因为可执行文件的大小会膨胀以包含RTTI。宣布公开可以避免这种成本。它不太可能无关紧要,特别是考虑到现代Delphi可执行文件的庞大规模,因为它们执行的大量代码甚至从未执行过。
对于可在对象检查器中编辑的组件,public
和published
之间的差异更为显着。如您所说,这是组件如何确定在Object Inspector中可见的属性。有些属性应该在那里可见,有些则不可见。用户“TLama”提供了需要公开的属性的精细示例,但不应在对象检查器中进行编辑:Parent
,Handle
等等。
除此之外,它归结为意见。完全取决于你决定做什么。