这看起来相当简单,也许我只是缺少一些语法粘合…这是我的简单泛型(Delphi XE3)示例:
unit Unit1; interface uses generics.collections; type X = class public Id: Integer; end; XList<T : X> = class( TObjectList<T> ) function Find(Id: Integer) : T; end; Y = class(X) end; YList = class(XList<Y>) end; implementation { XList<T> } function XList<T>.Find(Id: Integer): T; var t: X; begin for t in Self do if t.Id = Id then Result := t; end; end.
这不会用“[dcc32错误] Unit1.pas(41)编译:E2010不兼容的类型:’Y’和’X’”.这是下线:
YList = class(XList<Y>) end;
Y来自X,为什么会出现问题?
解决方法
原文地址:https://www.jb51.cc/delphi/102043.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。