【发布时间】:2012-02-23 23:50:39
【问题描述】:
我有一个将在整个应用程序中广泛使用的辅助类。实现依赖于接口引用计数,大致思路是:
...
var
lHelper: IMyHelper;
begin
lHelper := TMyHelper.Create(some params);
...some code that doesn't have to access lHelper
end;
所以实现依赖于 IMyHelper 在方法结束时超出范围,而不是之前。
所以我要问的是,如果在其余方法中未访问变量,我能否确定在某些未来 Delphi 编译器不会发挥智能并在创建接口后立即释放接口?
【问题讨论】:
-
this blog post 的 cmets 可能会让您感兴趣。
-
没有人可以确定未来,但问题下的编译器行为应该被认为是极不可能和不可取的。
-
担心未使用的实例有什么意义?
-
我在这里问了一个类似的问题:stackoverflow.com/questions/7759081/…
-
@mjn 这就是our profiling feature in our logging class的用途:在方法开头写
TSynLog.Enter;会自动分析它,并在函数TSynLog返回的接口时生成一个“离开”日志条目.输入。
标签: delphi interface implementation reference-counting