今天,当我不得不重写TObject的BeforeConstruction方法时,我想到了一个非常简单的问题:
为什么TObject方法AfterConstruction和BeforeConstruction有public可见性?
我希望他们是protected。他们不是的原因是什么?
我无法想象调用AfterConstruction或BeforeConstruction不调用该类的构造函数或析构函数的有效目的。你?
今天,当我不得不重写TObject的BeforeConstruction方法时,我想到了一个非常简单的问题:
为什么TObject方法AfterConstruction和BeforeConstruction有public可见性?
我希望他们是protected。他们不是的原因是什么?
我无法想象调用AfterConstruction或BeforeConstruction不调用该类的构造函数或析构函数的有效目的。你?
上一个问题询问为什么其他一些方法是公共的而不是受保护的,答案是它们在某些时候需要由未附加到类的实用程序函数调用。
TObject.AfterConstruction被这样一个实用函数调用,System._AfterConstruction. 如果它受到(严格)保护,那么该独立函数将无权访问该方法。
的所有方法TObject都是公开的。* 我们或许可以找到解释为什么每种方法都是公开的理由,但在某一点上,我怀疑任何给定方法公开的根本原因是所有其他方法也是公开的。
一旦 Delphi 公开了这些方法,任何降低它们的可见性都会有破坏现有代码的风险。
GetDisposed*和CheckDisposed, 出于某种原因除外。与大部分TObject.