delphi – 具有参数约束的泛型构造函数?
发布时间:2020-12-15 10:11:06 所属栏目:大数据 来源:网络整理
导读:TMyBaseClass=class constructor(test:integer);end;TMyClass=class(TMyBaseClass);TClass1T: TMyBaseClass,constructor=class() public FItem: T; procedure Test;end;procedure TClass1T.Test;begin FItem:= T.Create;end;var u: TClass1TMyClass;begin u:
TMyBaseClass=class constructor(test:integer); end; TMyClass=class(TMyBaseClass); TClass1<T: TMyBaseClass,constructor>=class() public FItem: T; procedure Test; end; procedure TClass1<T>.Test; begin FItem:= T.Create; end; var u: TClass1<TMyClass>; begin u:=TClass1<TMyClass>.Create(); u.Test; end; 如何使用整数参数创建类.解决方法是什么? 解决方法
只是对正确的类进行类型转换:
type TMyBaseClassClass = class of TMyBaseClass; procedure TClass1<T>.Test; begin FItem:= T(TMyBaseClassClass(T).Create(42)); end; 此外,将构造函数设置为虚拟可能是个好主意. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |