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

DBe*_*nko 1 delphi rtti

宣布成员优先publishedpublic:

那么宣布成员public而不是published?请问published有什么缺点?或者我应该经常宣布成员published吗?


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

Dav*_*nan 5

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

对于可以在Object Inspector中编辑的组件,public和之间的区别published更为重要.如您所说,这是组件如何确定在Object Inspector中可见的属性.有些属性应该在那里可见,有些则不可见.网友"TLama"给那些需要是公共性质的典范,但不应该是在Object Inspector编辑:Parent,Handle等等.

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