相关疑难解决方法(0)

是实现Delphi接口引用计数的未来证明

我有一个助手类,将在整个应用程序中广泛使用.实现依赖于接口引用计数,这个想法大致是:

...
var
  lHelper: IMyHelper;
begin
  lHelper := TMyHelper.Create(some params);
  ...some code that doesn't have to access lHelper
end;
Run Code Online (Sandbox Code Playgroud)

因此,实现依赖于IMyHelper在方法结束时超出范围,但之前没有.

所以我要问的是,我可以肯定,在未来的某些Delphi编译器中,如果在该方法的其余部分中没有访问该变量,那么在创建它之后就不会发挥智能并立即释放界面吗?

delphi implementation interface reference-counting

8
推荐指数
1
解决办法
562
查看次数

接口"递归"和引用计数

我的接口有一个小问题.这是伪代码:

type
  Interface1 = interface
  end;

  Interface2 = interface
  end;

  TParentClass = class(TInterfacedObject, Interface1)
  private
    fChild : Interface2;
  public
    procedure AddChild(aChild : Interface2);
  end;

  TChildClass = class(TInterfacedObject, Interface2)
  private
    fParent : Interface2;
  public
    constructor Create(aPArent : Interface1);
  end;
Run Code Online (Sandbox Code Playgroud)

任何人都可以看到这个缺陷吗?我需要孩子引用它的父级,但引用计数在这种情况下不起作用.如果我创建一个ParentClass实例,并添加一个子类,那么父类永远不会被释放.我明白为什么.我怎么绕圈呢?

delphi oop interface

4
推荐指数
1
解决办法
823
查看次数