3

今天我碰巧用Delphi 7编译了一个类定义像这样的代码

type TAudioStream = class helper of TStream;

而且,令我惊讶的是,编译器吐了

“系统单元过期或损坏:缺少‘TClassHelperBase’”

看起来 Delphi7 已经对这个helper词有一些保留的用法。

Delphi 在 Delphi 8 中引入了 Helper 类。它们旨在将 VCL 绑定到 .Net。那么,Delphi7 有先见之明吗?

4

3 回答 3

4

我不确定这是否是一个真正的问题。为将来的实施保留关键字是一种常见的做法。Delphi 8 的路线图和计划的功能应该在 Delphi 7 的发布日期指定。所以是的,我认为 Delphi 7 在这种情况下是有先见之明的。

于 2011-06-23T08:10:46.497 回答
1

语言设计者保留某些词以供将来使用是很常见的。classinterface,例如,在 JavaScript 中一直是保留字……什么,十年了……尽管预计它们不会再使用几年。goto是 Java 中的保留字,尽管它从未被期望使用。

编译器编写者实现功能以备将来使用也很常见。例如,泛型已经在 Sun 的 Java 1.2javac编译器中实现,尽管它们直到 Java 5 才被添加到语言规范中。

于 2011-06-23T08:27:12.963 回答
1

请记住,Delphi 7 包含“.Net 预览编译器”。Delphi 7 意识到了一些即将推出的功能,并且显然,它甚至对这些功能的实现有所了解——它知道的足够多,可以预期某些东西会出现在系统单元中,并在它们不存在时抱怨。

于 2011-06-23T14:15:06.897 回答