Delphi泛型类可以从它的类参数中下降吗?
发布时间:2020-12-15 09:37:48 所属栏目:大数据 来源:网络整理
导读:我一直在尝试定义一个通用的,可继承的TSingleton类.这是我正在进行的工作: TSingletonRealClass,InheritsFrom : class = class(InheritsFrom) strict private class var FInstance : RealClass; protected procedure InstanceInitialization;virtual; publi
我一直在尝试定义一个通用的,可继承的TSingleton类.这是我正在进行的工作:
TSingleton<RealClass,InheritsFrom : class> = class(InheritsFrom) strict private class var FInstance : RealClass; protected procedure InstanceInitialization;virtual; public destructor Destroy; override; class procedure Create; reintroduce; class function Instance : RealClass; class procedure InstanceFree; end; 目标是能够在继承树中“插入”单例模式.所以不要声明这样的事情: TMySingletonComponent = class(TComponent) end; 并且需要在那里实现单例模式,我会声明这样的事情: TMyGenericSingletonComponent = class(TSingleton<TMyGenericSingletonComponent,TComponent>) end; 可悲的是,这不起作用.我收到以下错误(在D2010中): TSingleton<RealClass,InheritsFrom : class> = class(InheritsFrom) ///E2021 Class type required 现在我想知道,这是否适用于Delphi XE?是否有一些“干净的黑客”我可以用来在D2010中完成这项工作?是否有一些根本原因导致这种情况无效? 解决方法
按照设计,您不能创建从其类型参数派生的泛型类.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |