考虑以下示例(我使用的是 Delphi XE):
program Test;
{$APPTYPE CONSOLE}
type
TTestClass<T> = class
private
class constructor CreateClass();
public
constructor Create();
end;
class constructor TTestClass<T>.CreateClass();
begin
// class constructor is not called. this line never gets executed!
Writeln('class created');
end;
constructor TTestClass<T>.Create();
begin
// this line, of course, is printed
Writeln('instance created');
end;
var
test: TTestClass<Integer>;
begin
test := TTestClass<Integer>.Create();
test.Free();
end.
类构造函数永远不会被调用,因此不会打印“类创建”行。但是,如果我删除泛化并制作TTestClass<T>
成标准类TTestClass
,一切都会按预期工作。
我错过了泛型的一些东西吗?或者它根本不起作用?
对此的任何想法都会受到赞赏!
谢谢,--斯特凡--