我正在尝试在Delphi 10.1 Berlin中进行以下操作,但编译器返回消息"F2084 Internal Error: AV0A785E48-R000000-10-0":
TMyType = (mtValue1, mtValue2);
TMyBaseClass = class
private
FMyType: TMyType;
public
property MyType: TMyType read FMyType write FMyType;
end;
TMyClass = class(TMyBaseClass)
private
FOtherField: Integer;
public
property OtherField: Integer read FOtherField write FOtherField;
end;
TMyBaseProcess1<T: TMyBaseClass> = class
strict private
FMyClass: T;
strict protected
type
TMyTypeHelper = record Helper for TMyType
public
function ToString: string;
end;
public
constructor Create(AMyClass: T);
procedure DoSomething;
end;
TMyProcess1 = class(TMyBaseProcess1<TMyClass>)
end;
TMyBaseProcess2<T: TMyBaseClass> = class
strict private
FMyClass: T;
strict protected
type
TMyTypeHelper = record Helper for TMyType
public
function ToInteger: Integer;
end;
public
constructor Create(AMyClass: T);
procedure DoSomethingElse;
end;
TMyProcess2 = class(TMyBaseProcess2<TMyClass>)
end;
TMyBaseProcess1中的辅助程序与TMyBaseProcess2中的完全不同。我可以轻易地将辅助程序和类分开。我只想知道为什么不能把它们放在一起。
有人知道问题出在哪里吗?我能否以这种方式使用泛型、嵌套记录助手和继承?