Nic*_*ges 4 delphi generics parameterized-types
标题就是它......
你为什么要使用constructor
约束?
class
约束显然暗示了这一点.
如果你单独使用它,你就不能对你创建的东西做任何事情.
为什么它甚至存在?
附加信息:
就像一个注释,在添加"构造函数"约束之前,以下代码不会编译:
program Project3;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
type
TSomeClass<T: class> = class
function GetType: T;
end;
{ TSomeClass<T> }
function TSomeClass<T>.GetType: T;
begin
Result := T.Create;
end;
begin
try
{ TODO -oUser -cConsole Main : Insert code here }
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
Run Code Online (Sandbox Code Playgroud)
你为什么要使用构造函数约束?
类约束明确暗示了这一点.
不,这不对.构造函数约束要求类型具有公共的无参数构造函数 - 然后允许调用该构造函数.
并非所有类都具有公共无参数构造函数.