delphi - 类声明之间的差异

标签 delphi class type-declaration

声明新类类型的方法有很多种:

  1. TMyClass1 = TObject;
  2. TMyClass2 = 类型 TObject;
  3. TMyClass3 = 类结束;
  4. TMyClass4 = class(TObject);
  5. TMyClass5 = class(TObject) end;

据我所知,类 3、4 和 5 是 TObject 的后代,但不清楚 1 和 2 有什么区别,以及 3,4 和 5 之间有什么区别。

有什么不同吗?

最佳答案

  • TMyClass1 只是一个别名 - TObject 的不同名称
  • TMyClass2TObject 的强类型别名(我们称之为“类型化类型”);不过,在类中使用它是非常不寻常的,通常你会在例如用于创建句柄类型或其他内容的指针(请参阅如何在 Windows.pas 中使用它)。
  • TMyClass3 是一个类,隐式源自 TObject,没有新成员。
  • TMyClass4 是一个类,显式源自 TObject,没有新成员,使用简洁的语法。更常见的是,这用于标记类,其中类本身的唯一性是有趣的事情 - 通常用于 Exception 后代
  • TMyClass5 是一个类,显式源自 TObject,没有新成员。声明中的 TObject 是多余的,但使其显式化并没有什么坏处。

关于delphi - 类声明之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5086439/

相关文章:

delphi - NumbersOnly TEdit Delphi 提示不起作用

ios - 注册类语法 - Swift

javascript - 允许使用 Array.from 将数据结构转换为数组

python - 成员变量字符串在 Python 中被视为元组

go - 这个类型声明是什么意思?

Delphi CompilerVersion指令问题

delphi - 我可以保证在表单销毁后执行自定义完成代码吗?

file - 如何使用多个文件类型屏蔽来过滤文件列表框?

map - 获取结构元素的静态类型

c++ - decltype(auto) 应该为自动类型推导的参数推导什么?