如何在泛型类中定义一个类型并在同一个类中使用它作为常量?

时间:2017-12-22 15:32:56

标签: delphi generics types delphi-10.1-berlin

这是我的代码:

Record

但它没有编译消息:

  

E2005'Foo<> .Bar'不是类型标识符

但是这样的事情没有问题编译:

type
  Foo<T> = class
  type
    Bar = (bar1, bar2);
  const
    Foe = [Low(Bar)..High(Bar)];
  end;

我也试过type Foo<T> = class type Bar = (bar1, bar2); function Foe: Bar; end; ,但收到了:

  

E2086类型'Foo'尚未完全定义

最后,我可以将[Low(Foo<T>.Bar)..High(Foo<T>.Bar)]定义为函数:

Foe

这会花费额外的函数调用。

有什么问题?如何将其定义为常量?

0 个答案:

没有答案