1
这里是我的一个项目的剥离下来的片段:如何获得泛型类之外的实际泛型参数?
接口部分:
type
TMainFormView<T:TCustomForm> = class(TInterfacedObject, IMainFormView)
private
...
protected
function GetMainFormClass: TCustomFormClass;
//
property MainFormClass:TCustomFormClass read GetMainFormClass;
public
...
end;
实现部分:
function TMainFormView<T>.GetMainFormClass: TCustomFormClass;
begin
Result:= T;
end;
我已经重构它和前执行是非常丑陋的相信我(我用了一个内部类,我最近发现它是一种矫枉过正而不优雅的)。
有没有其他更好的方法来编码它?我的目的是能够提取T的“具体”类,并通过受保护的属性对其进行公开。