gpt4 book ai didi

使用泛型的 Delphi 属性 getter 函数

转载 作者:行者123 更新时间:2023-12-03 15:49:23 27 4
gpt4 key购买 nike

如果有通用属性 getter / setter 在每次访问时执行常见任务,那就太好了。

该代码在 Delphi XE2 中给出编译时错误“E2008 不兼容类型”。类似的代码在编译期间出现内部错误,但从未编译。是我犯了错误还是编译器限制?

type TFoo = class
private
function Get<T>: T;
public
property Bar: Integer read Get<Integer>;
end;

function TFoo.Get<T>: T;
begin
Result := 0;
end;

最佳答案

以下内容在 Delphi 语言中可以是通用的:

  • 类(class),例如TFooClass<T> = class
  • 记录,例如TFooRecord<T> = record
  • 接口(interface),例如TFooInterface<T> = interface
  • 程序类型,例如TFooProc<T> = procedure
  • 方法,例如procedure FooMethod<T>()

属性本身不能是通用的,也不能使用通用的 getter 或 setter 方法来实现。

关于使用泛型的 Delphi 属性 getter 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59408370/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com