【问题标题】:Error in my OO Generics design. How do I workaround it?我的 OO 泛型设计中的错误。我该如何解决?
【发布时间】:2010-05-14 14:35:15
【问题描述】:

我在第三个类上得到“E2511 Type parameter 'T' must be a class type”。

type TSomeClass=class
end;

ParentParentClass<T>=class 
end;

ParentClass<T: class> = class(ParentParentClass<T>)
end;

ChildClass<T: TSomeClass> = class(ParentClass<T>)
end;

我正在尝试为任何数据类型(ParentParentClass)编写一个精简的通用数组包装器,但是因为我无法释放类型标识符(如果 T 是 TObject 则 Tobject(T).Free),我创建了第二个类,这对类类型很有用,所以我可以释放对象。

第三类是我使用包装器的地方,但编译器会抛出该错误。如何编译?

【问题讨论】:

    标签: delphi generics delphi-2009 generic-programming


    【解决方案1】:

    这是a bug in Delphi 2009's generics handling。它已在 D2010 中修复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-09
      • 2017-05-25
      • 2016-07-21
      • 2018-11-10
      • 2016-09-09
      • 2015-03-23
      • 2014-09-05
      相关资源
      最近更新 更多