标题已经很明确了...
为什么你要使用constructor
约束?
这显然已经被class
约束隐含了。
如果你只使用它,你无法对你创建的事物做任何操作。
它为什么存在?
额外信息:
请注意,以下代码在添加"constructor"约束之前是无法编译的:
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.