delphi – 如何使用类帮助程序来访问类的严格私有成员?
发布时间:2020-12-15 05:21:38 所属栏目:大数据 来源:网络整理
导读:这是一个后续问题: How to hide a protected procedure of an object? (我对整个类帮助器概念有点模糊) 假设我有一个类: type TShy = class(TObject) strict private procedure TopSecret;private procedure DirtyLaundry; protected procedure ResistantT
这是一个后续问题:
How to hide a protected procedure of an object?
(我对整个类帮助器概念有点模糊) 假设我有一个类: type TShy = class(TObject) strict private procedure TopSecret; private procedure DirtyLaundry; protected procedure ResistantToChange; end; 我知道我可以访问私有方法,如果我有源代码通过在同一单元中添加一个派生类。 我有2个问题: 解决方法
直到,包括Delphi 10.0 Seattle,你可以使用类助手来访问严格的受保护和严格的私有成员,像这样:
unit Shy; interface type TShy = class(TObject) strict private procedure TopSecret; private procedure DirtyLaundry; protected procedure ResistantToChange; end; unit NotShy; interface uses Shy; type TNotShy = class helper for TShy public procedure LetMeIn; end; implementation procedure TNotShy.LetMeIn; begin Self.TopSecret; Self.DirtyLaundry; Self.ResistantToChange; end; end. uses ...,Shy,NotShy; procedure TestShy; var Shy: TShy; begin Shy := TShy.Create; Shy.LetMeIn; Shy.Free; end; 然而,从德尔福10.1柏林开始,这不再工作!类助手不能再访问严格受保护的,严格的私人或私人成员。这个“功能”实际上是Embarcadero现在在柏林修复的一个编译器错误。你失去了运气。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |