为什么声明带有类型键的TDictionary会引发内部L2095错误?

时间:2017-04-26 13:14:39

标签: delphi generics delphi-xe2

有谁知道为什么以下代码会引发内部L2095错误?

显然编译器的字典键是类类型有问题。

任何人都知道解决方法吗?

(PS:当我不包含TestDict := TDictTest.Create;部分或当键不是类类型时,不会抛出错误)

  TTestClass = class
  end;

  TTypeOfTestClass = type of TTestClass;

  TDictTest = TDictionary<TTypeOfTestClass,Integer>;

var
  TestDict: TDictTest;

implementation

initialization

  TestDict := TDictTest.Create;
  TestDict.Free

在回答后添加

显然这是关于我本能地使用“type of”而不是“class of”。编译器接受“Type of”,因此产生混淆。 对与此相关的问题的引用:What "type of" declaration represents in Delphi and how can it be used

1 个答案:

答案 0 :(得分:3)

我不认为&#34;类型......&#34;甚至是允许的。使用

systemctl

代替。