【发布时间】:2012-04-16 07:55:51
【问题描述】:
我的问题很简单。我有一个包含 CNotif 类对象的 TList(称为 queue),并希望在这些对象上使用方法 is_alive。
问题是,当我使用queue.Items[0].is_alive() 时,我收到一条错误消息说Error: Illegal qualifier。
我也对在这个 TList 中实例化对象的方式感到困惑(以及编译器如何“知道”存储的对象属于这种类型......)
我现在做的是:queue.Add(CNotif.create(timer, title, text, badge)),但我认为不应该那样做。
提前谢谢你!
【问题讨论】:
-
只是一个旁注。使用第一个字符
T命名类型有一个不成文的约定,比如TLama是Lama的类型,所以对于你的情况,它是TCNotif;-) -
不是 C 代表类,T 代表“基本”类型(如数组或记录)吗?
-
不,它适用于所有
Types,包括类、记录、枚举等。假设您在代码的type部分拥有的所有内容。 -
只是为了澄清,正如 TLama 指出的那样,如果我没记错的话,在你的情况下它实际上是
TNotif- 如果C是你的前缀。但无论如何,T之后的一切都取决于你,所以从技术上讲,命名类型没有正确或错误的方式。没有T仍然可以工作,但在Delphi 中,类型应该以T开头。