是否支持Delphi XE中的泛型类型?
发布时间:2020-12-15 04:34:10 所属栏目:大数据 来源:网络整理
导读:我在D2010,我必须坚持到64位出来. 使用泛型,不支持指向泛型类型的指针,我发现它们确实非常有用.我在其他地方读过SO(2009年的帖子)巴里凯利爵士认为这可能会在未来发生变化.有谁知道XE是否支持这个? 如果没有,我真的希望他们进入XE2. 谢谢. 解决方法 在XE(20
我在D2010,我必须坚持到64位出来.
使用泛型,不支持指向泛型类型的指针,我发现它们确实非常有用.我在其他地方读过SO(2009年的帖子)巴里凯利爵士认为这可能会在未来发生变化.有谁知道XE是否支持这个? 如果没有,我真的希望他们进入XE2. 谢谢. 解决方法
在XE(2011):
这有效: type TTest1<T> = record FX : T; end; TTest2<T> = array of T; 这不起作用: type TTest3<T> = ^TTest1<T>; TTest4<T> = ^TTest2<T>; TTest<T> = ^T; 因此,指向泛型的指针尚不可能. 但是你可以做到以下几点: type TMyClass = class public class function GetAddr<T>(const AItem: T): Pointer; class function GetP<T>(const APtr: Pointer): T; end; class function TMyClass.GetAddr<T>(const AItem: T): Pointer; begin Result := @AItem; end; class function TMyClass.GetP<T>(const APtr: Pointer): T; begin Result := T(APtr^); end; 您不能拥有泛型函数,但可以使用泛型方法. 因此,您可以使用泛型指针,但请记住,使用这种脏技术,您没有类型安全性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |